summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Wilhelm <daniel@wili.li>2014-04-18 17:21:41 +0200
committerDaniel Wilhelm <daniel@wili.li>2014-04-18 17:21:41 +0200
commitd6301fca6b78db52d0d98f8e0799aba175ad2e59 (patch)
tree0380aac034e0d70ee058db07900d80ff20cfc81e
parent5.7 (diff)
downloadFreeFileSync-d6301fca6b78db52d0d98f8e0799aba175ad2e59.tar.gz
FreeFileSync-d6301fca6b78db52d0d98f8e0799aba175ad2e59.tar.bz2
FreeFileSync-d6301fca6b78db52d0d98f8e0799aba175ad2e59.zip
5.8
-rw-r--r--Application.cpp143
-rw-r--r--Application.h4
-rw-r--r--BUILD/Changelog.txt15
-rw-r--r--BUILD/FreeFileSync.chmbin662608 -> 433104 bytes
-rw-r--r--BUILD/Help/html/Comparison Settings.html2
-rw-r--r--BUILD/Help/html/FreeFileSync.html76
-rw-r--r--BUILD/Help/html/Macros.html71
-rw-r--r--BUILD/Help/html/RealtimeSync.html6
-rw-r--r--BUILD/Help/html/Run as Service.html137
-rw-r--r--BUILD/Help/html/Schedule a Batch Job.html6
-rw-r--r--BUILD/Help/html/Variable Drive Letters.html2
-rw-r--r--BUILD/Help/img/CmpSettings.pngbin28854 -> 27659 bytes
-rw-r--r--BUILD/Help/img/CompareButton.pngbin4878 -> 3738 bytes
-rw-r--r--BUILD/Help/img/MainDialog.pngbin74469 -> 65805 bytes
-rw-r--r--BUILD/Help/img/RealtimeSync.pngbin42122 -> 29743 bytes
-rw-r--r--BUILD/Help/img/RunAsService_html_13819326743214.pngbin39341 -> 0 bytes
-rw-r--r--BUILD/Help/img/RunAsService_html_17e8fbfe.pngbin9916 -> 0 bytes
-rw-r--r--BUILD/Help/img/RunAsService_html_4f230a46.pngbin16072 -> 0 bytes
-rw-r--r--BUILD/Help/img/RunAsService_html_68e0fe53.pngbin7391 -> 0 bytes
-rw-r--r--BUILD/Help/img/RunAsService_html_7aa44556.pngbin101229 -> 0 bytes
-rw-r--r--BUILD/Help/img/RunAsService_html_bf02de4e.pngbin13958 -> 0 bytes
-rw-r--r--BUILD/Help/img/RunAsService_html_m3be0f332.pngbin16574 -> 0 bytes
-rw-r--r--BUILD/Help/img/RunAsService_html_m3e56d901.pngbin72687 -> 0 bytes
-rw-r--r--BUILD/Help/img/SetupBatch.pngbin27624 -> 26206 bytes
-rw-r--r--BUILD/Help/img/SourceTarget.pngbin4736 -> 4638 bytes
-rw-r--r--BUILD/Help/img/SyncConfigButton.pngbin2813 -> 2530 bytes
-rw-r--r--BUILD/Help/img/SynchronizeButton.pngbin5109 -> 4324 bytes
-rw-r--r--BUILD/Help/img/WatchUsbInsert.pngbin35572 -> 27440 bytes
-rw-r--r--BUILD/Help/img/create_shortcut.pngbin0 -> 15610 bytes
-rw-r--r--BUILD/Help/img/ffsicon.pngbin7709 -> 12746 bytes
-rw-r--r--BUILD/Help/img/rtsicon.pngbin7462 -> 13179 bytes
-rw-r--r--BUILD/Help/img/schedule_realtimesync.pngbin0 -> 28856 bytes
-rw-r--r--BUILD/Help/img/shortcut_properties.pngbin0 -> 29975 bytes
-rw-r--r--BUILD/Help/img/win7scheduler.pngbin29311 -> 28693 bytes
-rw-r--r--BUILD/Languages/german.lng97
-rw-r--r--BUILD/Resources.zipbin264614 -> 222370 bytes
-rw-r--r--FreeFileSync.cbp4
-rw-r--r--FreeFileSync.vcxproj2
-rw-r--r--Makefile2
-rw-r--r--RealtimeSync/RealtimeSync.cbp1
-rw-r--r--RealtimeSync/RealtimeSync.icobin131100 -> 130761 bytes
-rw-r--r--RealtimeSync/RealtimeSync.vcxproj1
-rw-r--r--RealtimeSync/application.cpp53
-rw-r--r--RealtimeSync/application.h4
-rw-r--r--RealtimeSync/gui_generated.cpp8
-rw-r--r--RealtimeSync/main_dlg.cpp10
-rw-r--r--RealtimeSync/main_dlg.h2
-rw-r--r--RealtimeSync/makefile1
-rw-r--r--RealtimeSync/resource.rc29
-rw-r--r--RealtimeSync/resources.cpp2
-rw-r--r--RealtimeSync/resources.h2
-rw-r--r--RealtimeSync/tray_menu.cpp27
-rw-r--r--RealtimeSync/tray_menu.h2
-rw-r--r--RealtimeSync/watcher.cpp2
-rw-r--r--RealtimeSync/watcher.h2
-rw-r--r--RealtimeSync/xml_ffs.cpp2
-rw-r--r--RealtimeSync/xml_ffs.h2
-rw-r--r--RealtimeSync/xml_proc.cpp2
-rw-r--r--RealtimeSync/xml_proc.h2
-rw-r--r--algorithm.cpp40
-rw-r--r--algorithm.h4
-rw-r--r--comparison.cpp6
-rw-r--r--comparison.h2
-rw-r--r--file_hierarchy.cpp2
-rw-r--r--file_hierarchy.h2
-rw-r--r--lib/Batch.icobin139831 -> 134332 bytes
-rw-r--r--lib/FreeFileSync.icobin132167 -> 132428 bytes
-rw-r--r--lib/ShadowCopy/LockFile.cpp2
-rw-r--r--lib/ShadowCopy/dll_main.cpp2
-rw-r--r--lib/ShadowCopy/shadow.cpp4
-rw-r--r--lib/ShadowCopy/shadow.h22
-rw-r--r--lib/SyncDB.icobin145378 -> 133875 bytes
-rw-r--r--lib/Thumbnail/dll_main.cpp2
-rw-r--r--lib/Thumbnail/thumbnail.cpp2
-rw-r--r--lib/Thumbnail/thumbnail.h10
-rw-r--r--lib/binary.cpp7
-rw-r--r--lib/binary.h2
-rw-r--r--lib/db_file.cpp9
-rw-r--r--lib/db_file.h2
-rw-r--r--lib/dir_exist_async.h2
-rw-r--r--lib/dir_lock.cpp2
-rw-r--r--lib/dir_lock.h2
-rw-r--r--lib/error_log.h2
-rw-r--r--lib/ffs_paths.h2
-rw-r--r--lib/generate_logfile.h4
-rw-r--r--lib/hard_filter.cpp2
-rw-r--r--lib/hard_filter.h2
-rw-r--r--lib/help_provider.h2
-rw-r--r--lib/icon_buffer.cpp4
-rw-r--r--lib/icon_buffer.h2
-rw-r--r--lib/localization.cpp79
-rw-r--r--lib/localization.h7
-rw-r--r--lib/norm_filter.h2
-rw-r--r--lib/parallel_scan.cpp6
-rw-r--r--lib/parallel_scan.h2
-rw-r--r--lib/parse_lng.h4
-rw-r--r--lib/parse_plural.h173
-rw-r--r--lib/perf_check.cpp4
-rw-r--r--lib/perf_check.h2
-rw-r--r--lib/process_xml.cpp83
-rw-r--r--lib/process_xml.h22
-rw-r--r--lib/resolve_path.cpp70
-rw-r--r--lib/resolve_path.h2
-rw-r--r--lib/resources.cpp8
-rw-r--r--lib/resources.h6
-rw-r--r--lib/return_codes.h11
-rw-r--r--lib/shadow.cpp2
-rw-r--r--lib/shadow.h2
-rw-r--r--lib/soft_filter.h35
-rw-r--r--lib/status_handler.cpp2
-rw-r--r--lib/status_handler.h2
-rw-r--r--lib/status_handler_impl.h2
-rw-r--r--lib/versioning.cpp6
-rw-r--r--lib/versioning.h4
-rw-r--r--lib/xml_base.cpp2
-rw-r--r--lib/xml_base.h2
-rw-r--r--process_callback.h2
-rw-r--r--resource.rc34
-rw-r--r--structures.cpp5
-rw-r--r--structures.h2
-rw-r--r--synchronization.cpp8
-rw-r--r--synchronization.h2
-rw-r--r--ui/IFileDialog_Vista/dll_main.cpp2
-rw-r--r--ui/IFileDialog_Vista/ifile_dialog.cpp6
-rw-r--r--ui/IFileDialog_Vista/ifile_dialog.h4
-rw-r--r--ui/Taskbar_Seven/dll_main.cpp2
-rw-r--r--ui/Taskbar_Seven/taskbar.cpp2
-rw-r--r--ui/Taskbar_Seven/taskbar.h4
-rw-r--r--ui/batch_config.cpp6
-rw-r--r--ui/batch_config.h2
-rw-r--r--ui/batch_status_handler.cpp10
-rw-r--r--ui/batch_status_handler.h4
-rw-r--r--ui/check_version.cpp111
-rw-r--r--ui/check_version.h2
-rw-r--r--ui/column_attr.h2
-rw-r--r--ui/custom_grid.cpp26
-rw-r--r--ui/custom_grid.h2
-rw-r--r--ui/dir_name.cpp13
-rw-r--r--ui/dir_name.h12
-rw-r--r--ui/exec_finished_box.cpp2
-rw-r--r--ui/exec_finished_box.h2
-rw-r--r--ui/folder_history_box.cpp10
-rw-r--r--ui/folder_history_box.h6
-rw-r--r--ui/folder_pair.h12
-rw-r--r--ui/grid_view.cpp2
-rw-r--r--ui/grid_view.h2
-rw-r--r--ui/gui_generated.cpp7331
-rw-r--r--ui/gui_generated.h1540
-rw-r--r--ui/gui_status_handler.cpp10
-rw-r--r--ui/gui_status_handler.h4
-rw-r--r--ui/main_dlg.cpp522
-rw-r--r--ui/main_dlg.h59
-rw-r--r--ui/msg_popup.cpp8
-rw-r--r--ui/msg_popup.h2
-rw-r--r--ui/progress_indicator.cpp12
-rw-r--r--ui/progress_indicator.h2
-rw-r--r--ui/search.cpp2
-rw-r--r--ui/search.h2
-rw-r--r--ui/small_dlgs.cpp40
-rw-r--r--ui/small_dlgs.h2
-rw-r--r--ui/sorting.h2
-rw-r--r--ui/switch_to_gui.h6
-rw-r--r--ui/sync_cfg.cpp2
-rw-r--r--ui/sync_cfg.h2
-rw-r--r--ui/taskbar.cpp2
-rw-r--r--ui/taskbar.h2
-rw-r--r--ui/tray_icon.cpp2
-rw-r--r--ui/tray_icon.h2
-rw-r--r--ui/tree_view.cpp4
-rw-r--r--ui/tree_view.h2
-rw-r--r--ui/triple_splitter.cpp2
-rw-r--r--ui/triple_splitter.h2
-rw-r--r--ui/wx_form_build_hide_warnings.h2
-rw-r--r--version/version.h2
-rw-r--r--version/version.rc4
-rw-r--r--wx+/app_main.h2
-rw-r--r--wx+/button.cpp2
-rw-r--r--wx+/button.h2
-rw-r--r--wx+/choice_enum.h2
-rw-r--r--wx+/context_menu.h2
-rw-r--r--wx+/create_pch.cpp2
-rw-r--r--wx+/file_drop.h2
-rw-r--r--wx+/graph.cpp2
-rw-r--r--wx+/graph.h2
-rw-r--r--wx+/grid.cpp4
-rw-r--r--wx+/grid.h2
-rw-r--r--wx+/image_tools.h7
-rw-r--r--wx+/mouse_move_dlg.cpp2
-rw-r--r--wx+/mouse_move_dlg.h2
-rw-r--r--wx+/no_flicker.h2
-rw-r--r--wx+/pch.h2
-rw-r--r--wx+/rtl.h2
-rw-r--r--wx+/shell_execute.h2
-rw-r--r--wx+/string_conv.h2
-rw-r--r--wx+/timespan.h2
-rw-r--r--wx+/toggle_button.h2
-rw-r--r--wx+/tooltip.cpp2
-rw-r--r--wx+/tooltip.h2
-rw-r--r--wx+/zlib_wrap.cpp2
-rw-r--r--wx+/zlib_wrap.h2
-rw-r--r--zen/FindFilePlus/dll_main.cpp2
-rw-r--r--zen/FindFilePlus/find_file_plus.cpp13
-rw-r--r--zen/FindFilePlus/find_file_plus.h3
-rw-r--r--zen/FindFilePlus/init_dll_binding.h2
-rw-r--r--zen/FindFilePlus/load_dll.cpp2
-rw-r--r--zen/FindFilePlus/load_dll.h2
-rw-r--r--zen/IFileOperation/dll_main.cpp2
-rw-r--r--zen/IFileOperation/file_op.cpp2
-rw-r--r--zen/IFileOperation/file_op.h20
-rw-r--r--zen/assert_static.h5
-rw-r--r--zen/base64.h55
-rw-r--r--zen/basic_math.h6
-rw-r--r--zen/build_info.h2
-rw-r--r--zen/com_error.h2
-rw-r--r--zen/com_ptr.h2
-rw-r--r--zen/com_util.h2
-rw-r--r--zen/debug_log.h2
-rw-r--r--zen/debug_new.cpp2
-rw-r--r--zen/debug_new.h2
-rw-r--r--zen/deprecate.h2
-rw-r--r--zen/dir_watcher.cpp2
-rw-r--r--zen/dir_watcher.h2
-rw-r--r--zen/dll.h20
-rw-r--r--zen/error_log.h2
-rw-r--r--zen/file_error.h2
-rw-r--r--zen/file_handling.cpp74
-rw-r--r--zen/file_handling.h2
-rw-r--r--zen/file_id.cpp2
-rw-r--r--zen/file_id.h2
-rw-r--r--zen/file_id_def.h2
-rw-r--r--zen/file_io.cpp2
-rw-r--r--zen/file_io.h2
-rw-r--r--zen/file_traverser.cpp2
-rw-r--r--zen/file_traverser.h2
-rw-r--r--zen/fixed_list.h2
-rw-r--r--zen/format_unit.cpp (renamed from wx+/format_unit.cpp)14
-rw-r--r--zen/format_unit.h (renamed from wx+/format_unit.h)10
-rw-r--r--zen/guid.h2
-rw-r--r--zen/i18n.h2
-rw-r--r--zen/int64.h2
-rw-r--r--zen/last_error.h2
-rw-r--r--zen/long_path_prefix.h2
-rw-r--r--zen/notify_removal.cpp2
-rw-r--r--zen/notify_removal.h2
-rw-r--r--zen/optional.h2
-rw-r--r--zen/perf.h2
-rw-r--r--zen/privilege.h2
-rw-r--r--zen/read_txt.h2
-rw-r--r--zen/recycler.cpp2
-rw-r--r--zen/recycler.h2
-rw-r--r--zen/scope_guard.h5
-rw-r--r--zen/serialize.h2
-rw-r--r--zen/stl_tools.h5
-rw-r--r--zen/string_base.h2
-rw-r--r--zen/string_tools.h5
-rw-r--r--zen/string_traits.h5
-rw-r--r--zen/symlink_target.h2
-rw-r--r--zen/thread.h6
-rw-r--r--zen/tick_count.h5
-rw-r--r--zen/time.h37
-rw-r--r--zen/type_tools.h5
-rw-r--r--zen/type_traits.h5
-rw-r--r--zen/utf.h5
-rw-r--r--zen/warn_static.h2
-rw-r--r--zen/win.h2
-rw-r--r--zen/win_ver.h7
-rw-r--r--zen/zstring.cpp2
-rw-r--r--zen/zstring.h2
268 files changed, 5965 insertions, 5776 deletions
diff --git a/Application.cpp b/Application.cpp
index baf269c1..ee616271 100644
--- a/Application.cpp
+++ b/Application.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "application.h"
@@ -24,7 +24,9 @@
#include "lib/process_xml.h"
#include "lib/error_log.h"
-#ifdef FFS_LINUX
+#ifdef FFS_WIN
+#include <zen/win_ver.h>
+#elif defined FFS_LINUX
#include <gtk/gtk.h>
#endif
@@ -34,9 +36,9 @@ using namespace xmlAccess;
IMPLEMENT_APP(Application)
-void runGuiMode(const xmlAccess::XmlGuiConfig& guiCfg, const XmlGlobalSettings& settings);
-void runGuiMode(const std::vector<wxString>& cfgFileName, const XmlGlobalSettings& settings);
-void runBatchMode(const Zstring& filename, XmlGlobalSettings& globSettings, FfsReturnCode& returnCode);
+void runGuiMode(const xmlAccess::XmlGuiConfig& guiCfg);
+void runGuiMode(const std::vector<wxString>& cfgFileName);
+void runBatchMode(const Zstring& filename, FfsReturnCode& returnCode);
#ifdef FFS_WIN
@@ -54,6 +56,10 @@ void onTerminationRequested()
::MessageBox(0, msg.c_str(), _("An exception occurred!").c_str(), 0);
std::abort();
}
+
+#ifdef _MSC_VER
+void crtInvalidParameterHandler(const wchar_t* expression, const wchar_t* function, const wchar_t* file, unsigned int line, uintptr_t pReserved) { assert(false); }
+#endif
}
#endif
@@ -62,6 +68,10 @@ bool Application::OnInit()
{
#ifdef FFS_WIN
std::set_terminate(onTerminationRequested); //unlike wxWidgets uncaught exception handling, this works for all worker threads
+#ifdef _MSC_VER
+ _set_invalid_parameter_handler(crtInvalidParameterHandler); //see comment in <zen/time.h>
+#endif
+ assert(!win8OrLater()); //another breadcrumb: test and add new OS entry to "compatibility" in application manifest
#endif
returnCode = FFS_RC_SUCCESS;
@@ -144,7 +154,7 @@ void Application::OnStartApplication(wxIdleEvent&)
SetAppName(L"FreeFileSync");
#ifdef FFS_WIN
- //Quote: "Best practice is that all applications call the process-wide SetErrorMode function with a parameter of
+ //Quote: "Best practice is that all applications call the process-wide ::SetErrorMode() function with a parameter of
//SEM_FAILCRITICALERRORS at startup. This is to prevent error mode dialogs from hanging the application."
::SetErrorMode(SEM_FAILCRITICALERRORS);
@@ -160,29 +170,18 @@ void Application::OnStartApplication(wxIdleEvent&)
wxToolTip::SetAutoPop(7000); //tooltip visibilty in ms, 5s seems to be default for Windows
#endif
- xmlAccess::XmlGlobalSettings globalSettings; //settings used by GUI, batch mode or both
- try //load global settings
- {
- if (fileExists(toZ(getGlobalConfigFile())))
- readConfig(globalSettings); //throw FfsXmlError
- //else: globalSettings already has default values
- }
- catch (const xmlAccess::FfsXmlError& error)
+ try
{
- setLanguage(globalSettings.programLanguage); //set default language
- //show messagebox and continue
- if (error.getSeverity() == FfsXmlError::WARNING)
- ; //wxMessageBox(error.toString(), _("Warning"), wxOK | wxICON_WARNING); -> ignore parsing errors: should be migration problems only *cross-fingers*
- else
- wxMessageBox(error.toString(), _("Error"), wxOK | wxICON_ERROR);
+ //tentatively set program language to OS default until GlobalSettings.xml is read later
+ setLanguage(xmlAccess::XmlGlobalSettings().programLanguage); //throw FileError
}
- setLanguage(globalSettings.programLanguage);
+ catch (const FileError&) {} //no messagebox: consider batch job!
//determine FFS mode of operation
std::vector<wxString> commandArgs = getCommandlineArgs(*this);
if (commandArgs.empty())
- runGuiMode(commandArgs, globalSettings);
+ runGuiMode(commandArgs);
else
{
const bool gotDirNames = std::any_of(commandArgs.begin(), commandArgs.end(), [](const wxString& dirname) { return dirExists(toZ(dirname)); });
@@ -210,7 +209,7 @@ void Application::OnStartApplication(wxIdleEvent&)
fp.rightDirectory = toZ(*iter);
}
- runGuiMode(guiCfg, globalSettings);
+ runGuiMode(guiCfg);
}
else //mode 2: try to set config/batch-filename set by %1 parameter
{
@@ -236,14 +235,14 @@ void Application::OnStartApplication(wxIdleEvent&)
{
case MERGE_BATCH: //pure batch config files
if (commandArgs.size() == 1)
- runBatchMode(utfCvrtTo<Zstring>(commandArgs[0]), globalSettings, returnCode);
+ runBatchMode(utfCvrtTo<Zstring>(commandArgs[0]), returnCode);
else
- runGuiMode(commandArgs, globalSettings);
+ runGuiMode(commandArgs);
break;
case MERGE_GUI: //pure gui config files
case MERGE_GUI_BATCH: //gui and batch files
- runGuiMode(commandArgs, globalSettings);
+ runGuiMode(commandArgs);
break;
case MERGE_OTHER: //= none or unknown;
@@ -271,12 +270,6 @@ void Application::OnStartApplication(wxIdleEvent&)
}
-bool Application::OnExceptionInMainLoop()
-{
- throw; //just re-throw exception and avoid display of additional exception messagebox: it will be caught in OnRun()
-}
-
-
int Application::OnRun()
{
auto processException = [](const std::wstring& msg)
@@ -316,24 +309,22 @@ void Application::OnQueryEndSession(wxEvent& event)
}
-void runGuiMode(const xmlAccess::XmlGuiConfig& guiCfg, const XmlGlobalSettings& settings)
+void runGuiMode(const xmlAccess::XmlGuiConfig& guiCfg)
{
- MainDialog* frame = new MainDialog(std::vector<wxString>(), guiCfg, settings, true);
- frame->Show();
+ MainDialog::create(guiCfg, true);
}
-void runGuiMode(const std::vector<wxString>& cfgFileNames, const XmlGlobalSettings& settings)
+void runGuiMode(const std::vector<wxString>& cfgFileNames)
{
- MainDialog* frame = new MainDialog(cfgFileNames, settings);
- frame->Show();
+ MainDialog::create(cfgFileNames);
}
-void runBatchMode(const Zstring& filename, XmlGlobalSettings& globSettings, FfsReturnCode& returnCode)
+void runBatchMode(const Zstring& filename, FfsReturnCode& returnCode)
{
//load XML settings
- XmlBatchConfig batchCfg; //structure to receive gui settings
+ XmlBatchConfig batchCfg;
try
{
readConfig(filename, batchCfg);
@@ -341,23 +332,58 @@ void runBatchMode(const Zstring& filename, XmlGlobalSettings& globSettings, FfsR
catch (const xmlAccess::FfsXmlError& e)
{
wxMessageBox(e.toString(), _("Error"), wxOK | wxICON_ERROR); //batch mode: break on errors AND even warnings!
+ raiseReturnCode(returnCode, FFS_RC_ABORTED);
return;
}
+
+ auto notifyError = [&](const std::wstring& msg)
+ {
+ if (batchCfg.handleError == ON_ERROR_POPUP)
+ wxMessageBox(msg.c_str(), _("Error"), wxOK | wxICON_ERROR);
+ else //"exit" or "ignore"
+ logError(utfCvrtTo<std::string>(msg));
+
+ raiseReturnCode(returnCode, FFS_RC_FINISHED_WITH_ERRORS);
+ };
+
+ XmlGlobalSettings globalCfg;
+ try
+ {
+ if (fileExists(toZ(getGlobalConfigFile())))
+ readConfig(globalCfg); //throw FfsXmlError
+ //else: globalCfg already has default values
+ }
+ catch (const xmlAccess::FfsXmlError& e)
+ {
+ if (e.getSeverity() != FfsXmlError::WARNING) //ignore parsing errors: should be migration problems only *cross-fingers*
+ return notifyError(e.toString()); //abort sync!
+ }
+
+ try
+ {
+ setLanguage(globalCfg.programLanguage); //throw FileError
+ }
+ catch (const FileError& e)
+ {
+ notifyError(e.toString());
+ //continue!
+ }
+
//all settings have been read successfully...
//regular check for program updates -> disabled for batch
//if (batchCfg.showProgress)
- // checkForUpdatePeriodically(globSettings.lastUpdateCheck);
+ // checkForUpdatePeriodically(globalCfg.lastUpdateCheck);
try //begin of synchronization process (all in one try-catch block)
{
const TimeComp timeStamp = localTime();
- const SwitchToGui switchBatchToGui(utfCvrtTo<wxString>(filename), batchCfg, globSettings); //prepare potential operational switch
+ const SwitchToGui switchBatchToGui(utfCvrtTo<wxString>(filename), batchCfg, globalCfg); //prepare potential operational switch
//class handling status updates and error messages
- BatchStatusHandler statusHandler(batchCfg.showProgress,
+ BatchStatusHandler statusHandler(batchCfg.showProgress, //throw BatchAbortProcess
extractJobName(filename),
timeStamp,
batchCfg.logFileDirectory,
@@ -366,7 +392,7 @@ void runBatchMode(const Zstring& filename, XmlGlobalSettings& globSettings, FfsR
switchBatchToGui,
returnCode,
batchCfg.mainCfg.onCompletion,
- globSettings.gui.onCompletionHistory);
+ globalCfg.gui.onCompletionHistory);
const std::vector<FolderPairCfg> cmpConfig = extractCompareCfg(batchCfg.mainCfg);
@@ -384,7 +410,7 @@ void runBatchMode(const Zstring& filename, XmlGlobalSettings& globSettings, FfsR
//batch mode: place directory locks on directories during both comparison AND synchronization
std::unique_ptr<LockHolder> dummy;
- if (globSettings.createLockFile)
+ if (globalCfg.createLockFile)
{
dummy.reset(new LockHolder(allowPwPrompt));
std::for_each(cmpConfig.begin(), cmpConfig.end(),
@@ -397,10 +423,10 @@ void runBatchMode(const Zstring& filename, XmlGlobalSettings& globSettings, FfsR
//COMPARE DIRECTORIES
FolderComparison folderCmp;
- compare(globSettings.fileTimeTolerance,
- globSettings.optDialogs,
+ compare(globalCfg.fileTimeTolerance,
+ globalCfg.optDialogs,
allowPwPrompt,
- globSettings.runWithBackgroundPriority,
+ globalCfg.runWithBackgroundPriority,
cmpConfig,
folderCmp,
statusHandler);
@@ -408,15 +434,15 @@ void runBatchMode(const Zstring& filename, XmlGlobalSettings& globSettings, FfsR
//START SYNCHRONIZATION
const std::vector<FolderPairSyncCfg> syncProcessCfg = extractSyncCfg(batchCfg.mainCfg);
if (syncProcessCfg.size() != folderCmp.size())
- throw std::logic_error("Programming Error: Contract violation!");
+ throw std::logic_error("Programming Error: Contract violation! " + std::string(__FILE__) + ":" + numberTo<std::string>(__LINE__));
synchronize(timeStamp,
- globSettings.optDialogs,
- globSettings.verifyFileCopy,
- globSettings.copyLockedFiles,
- globSettings.copyFilePermissions,
- globSettings.transactionalFileCopy,
- globSettings.runWithBackgroundPriority,
+ globalCfg.optDialogs,
+ globalCfg.verifyFileCopy,
+ globalCfg.copyLockedFiles,
+ globalCfg.copyFilePermissions,
+ globalCfg.transactionalFileCopy,
+ globalCfg.runWithBackgroundPriority,
syncProcessCfg,
folderCmp,
statusHandler);
@@ -433,13 +459,10 @@ void runBatchMode(const Zstring& filename, XmlGlobalSettings& globSettings, FfsR
try //save global settings to XML: e.g. ignored warnings
{
- xmlAccess::writeConfig(globSettings); //FfsXmlError
+ xmlAccess::writeConfig(globalCfg); //FfsXmlError
}
catch (const xmlAccess::FfsXmlError& e)
{
- if (batchCfg.handleError == ON_ERROR_POPUP)
- wxMessageBox(e.toString(), _("Error"), wxOK | wxICON_ERROR); //batch mode: break on errors AND even warnings!
- else
- logError(utfCvrtTo<std::string>(e.toString()));
+ notifyError(e.toString());
}
}
diff --git a/Application.h b/Application.h
index b0968f6d..4121ae4c 100644
--- a/Application.h
+++ b/Application.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef FREEFILESYNCAPP_H
@@ -18,7 +18,7 @@ private:
virtual bool OnInit();
virtual int OnRun();
virtual int OnExit() { return 0; }
- virtual bool OnExceptionInMainLoop();
+ virtual bool OnExceptionInMainLoop() { throw; } //just re-throw and avoid display of additional messagebox: it will be caught in OnRun()
void OnStartApplication(wxIdleEvent& event);
void OnQueryEndSession(wxEvent& event);
diff --git a/BUILD/Changelog.txt b/BUILD/Changelog.txt
index 412615f3..8e9bdc27 100644
--- a/BUILD/Changelog.txt
+++ b/BUILD/Changelog.txt
@@ -2,6 +2,21 @@
|FreeFileSync|
--------------
+Changelog v5.8
+--------------
+New icon theme
+Dynamic save button and dialog title show unsaved configuration
+Exclude all folders if file size or time span filters are active
+Added macros %csidl_Nethood%, %csidl_Programs%, %csidl_Startup%
+Fixed crash on failed CRT parameter validation (Windows)
+Auto-updater handles moved web address for version check
+Fixed configuration conversion error when deleting into versioning folder
+Avoid modal error dialogs in batch mode unless error handling is set to "popup"
+Set return codes in batch mode even if modal dialogs are shown
+Disabled UAC virtualization for 32-bit user-mode process
+Descriptive error message when setting invalid dates on FAT volumes
+
+
Changelog v5.7
--------------
Modern directory selection dialog (Windows Vista and later)
diff --git a/BUILD/FreeFileSync.chm b/BUILD/FreeFileSync.chm
index 91d928d1..f680d349 100644
--- a/BUILD/FreeFileSync.chm
+++ b/BUILD/FreeFileSync.chm
Binary files differ
diff --git a/BUILD/Help/html/Comparison Settings.html b/BUILD/Help/html/Comparison Settings.html
index 7cf2207d..cf1d9ffa 100644
--- a/BUILD/Help/html/Comparison Settings.html
+++ b/BUILD/Help/html/Comparison Settings.html
@@ -27,7 +27,7 @@
<BODY LANG="en-US" DIR="LTR">
<H2 CLASS="western"><FONT FACE="Tahoma, sans-serif"><FONT SIZE=4 STYLE="font-size: 15pt">Comparison
Settings</FONT></FONT></H2>
-<P STYLE="margin-bottom: 0cm"><IMG SRC="../img/CmpSettings.png" NAME="Grafik1" ALIGN=BOTTOM WIDTH=250 HEIGHT=257 BORDER=0></P>
+<P STYLE="margin-bottom: 0cm"><IMG SRC="../img/CmpSettings.png" NAME="Grafik1" ALIGN=BOTTOM BORDER=0></P>
<H3 CLASS="western" STYLE="page-break-after: avoid"><FONT FACE="Tahoma, sans-serif">I.
Compare by &quot;File time and size&quot;</FONT></H3>
<P STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif">This
diff --git a/BUILD/Help/html/FreeFileSync.html b/BUILD/Help/html/FreeFileSync.html
index 6004791c..04d18c92 100644
--- a/BUILD/Help/html/FreeFileSync.html
+++ b/BUILD/Help/html/FreeFileSync.html
@@ -5,7 +5,7 @@
<TITLE></TITLE>
<META NAME="GENERATOR" CONTENT="OpenOffice.org 3.2 (Win32)">
<META NAME="CREATED" CONTENT="20091206;16574000">
- <META NAME="CHANGED" CONTENT="20120903;14424200">
+ <META NAME="CHANGED" CONTENT="20120928;19211700">
<META NAME="Info 1" CONTENT="">
<META NAME="Info 2" CONTENT="">
<META NAME="Info 3" CONTENT="">
@@ -23,23 +23,23 @@
</STYLE>
</HEAD>
<BODY LANG="de-DE" DIR="LTR">
-<H3 CLASS="western" ALIGN=CENTER><IMG SRC="../img/ffsicon.png" NAME="Grafik6" ALIGN=ABSMIDDLE WIDTH=37 HEIGHT=37 BORDER=0>
+<H3 CLASS="western" ALIGN=CENTER><IMG SRC="../img/ffsicon.png" NAME="Grafik6" ALIGN=ABSMIDDLE WIDTH=36 HEIGHT=36 BORDER=0>
<FONT SIZE=4 STYLE="font-size: 16pt">FreeFileSync<BR></FONT><FONT SIZE=3><I><SPAN STYLE="font-weight: normal">-
Folder Comparison and Synchronization -</SPAN></I></FONT></H3>
<H3 CLASS="western" ALIGN=LEFT>Usage:</H3>
<OL>
<LI VALUE=1><P STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif">Choose
- left and right directories.<BR></FONT><IMG SRC="../img/SourceTarget.png" NAME="Grafik4" ALIGN=TEXTTOP WIDTH=427 HEIGHT=50 BORDER=0></P>
+ left and right directories.<BR></FONT><IMG SRC="../img/SourceTarget.png" NAME="Grafik4" ALIGN=TEXTTOP WIDTH=426 HEIGHT=50 BORDER=0></P>
<P STYLE="margin-bottom: 0cm">&nbsp;</P>
<LI><P STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif">&quot;</FONT><FONT FACE="Tahoma, sans-serif"><I>Compare</I></FONT><FONT FACE="Tahoma, sans-serif">&quot;
- them.<BR></FONT><IMG SRC="../img/CompareButton.png" NAME="Grafik1" ALIGN=BOTTOM WIDTH=178 HEIGHT=40 BORDER=0></P>
+ them.<BR></FONT><IMG SRC="../img/CompareButton.png" NAME="Grafik1" ALIGN=BOTTOM WIDTH=178 HEIGHT=44 BORDER=0></P>
<P STYLE="margin-bottom: 0cm">&nbsp;</P>
<LI><P STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif">Select
- synchronization settings.<BR></FONT><IMG SRC="../img/SyncConfigButton.png" NAME="Grafik3" ALIGN=BOTTOM WIDTH=46 HEIGHT=40 BORDER=0></P>
+ synchronization settings.<BR></FONT><IMG SRC="../img/SyncConfigButton.png" NAME="Grafik3" ALIGN=BOTTOM WIDTH=44 HEIGHT=44 BORDER=0></P>
<P STYLE="margin-bottom: 0cm">&nbsp;</P>
<LI><P STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif">Press
&quot;</FONT><FONT FACE="Tahoma, sans-serif"><I>Synchronize...</I></FONT><FONT FACE="Tahoma, sans-serif">&quot;
- to begin synchronization.<BR></FONT><IMG SRC="../img/SynchronizeButton.png" NAME="Grafik2" ALIGN=BOTTOM WIDTH=183 HEIGHT=40 BORDER=0></P>
+ to begin synchronization.<BR></FONT><IMG SRC="../img/SynchronizeButton.png" NAME="Grafik2" ALIGN=BOTTOM WIDTH=178 HEIGHT=44 BORDER=0></P>
</OL>
<P STYLE="margin-bottom: 0cm; border-top: none; border-bottom: 1px solid #000000; border-left: none; border-right: none; padding-top: 0cm; padding-bottom: 0.07cm; padding-left: 0cm; padding-right: 0cm">
<BR>
@@ -49,7 +49,7 @@ Folder Comparison and Synchronization -</SPAN></I></FONT></H3>
<H3 CLASS="western" STYLE="page-break-before: always"><FONT FACE="Tahoma, sans-serif">Main
Dialog:</FONT></H3>
<OL>
- <P STYLE="margin-bottom: 0cm"><IMG SRC="../img/MainDialog.png" NAME="Grafik5" ALIGN=BOTTOM BORDER=0></P>
+ <P STYLE="margin-bottom: 0cm"><IMG SRC="../img/MainDialog.png" NAME="Grafik5" ALIGN=BOTTOM WIDTH=671 HEIGHT=428 BORDER=0></P>
</OL>
<P STYLE="margin-bottom: 0cm"><BR>
</P>
@@ -77,68 +77,8 @@ Dialog:</FONT></H3>
files</FONT></FONT></P>
<LI><P STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif"><FONT SIZE=4>Select
categories for preview</FONT></FONT></P>
- <LI><P STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif"><FONT SIZE=4>Synchronization
+ <LI><P STYLE="margin-bottom: 0cm"><FONT SIZE=4><FONT FACE="Tahoma, sans-serif">Synchronization
statistics</FONT></FONT></P>
</OL>
-<P STYLE="margin-bottom: 0cm; border-top: none; border-bottom: 1px solid #000000; border-left: none; border-right: none; padding-top: 0cm; padding-bottom: 0.07cm; padding-left: 0cm; padding-right: 0cm">
-<BR>
-</P>
-<P STYLE="margin-bottom: 0cm"><BR>
-</P>
-<H3 CLASS="western" STYLE="page-break-before: always"><FONT FACE="Tahoma, sans-serif">Key
-Features</FONT></H3>
-<OL>
- <LI><P STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif">Detect
- moved and renamed files and folders</FONT></P>
- <LI><P STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif">Copy
- locked files (Volume Shadow Copy Service)</FONT></P>
- <LI><P STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif">Detect
- conflicts and propagate deletions</FONT></P>
- <LI><P STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif">Binary
- comparison</FONT></P>
- <LI><P STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif">Full
- support for Symbolic Links</FONT></P>
- <LI><P STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif">Automate
- sync as a batch job</FONT></P>
- <LI><P STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif">Multiple
- folder pairs</FONT></P>
- <LI><P STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif">Copy
- NTFS extended attributes (compressed, encrypted, sparse)</FONT></P>
- <LI><P STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif">Copy
- NTFS security permissions</FONT></P>
- <LI><P STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif">Support
- long path names &gt; 260 characters</FONT></P>
- <LI><P STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif">Fail-safe
- file copy</FONT></P>
- <LI><P STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif">Cross-platform:
- Windows/Linux</FONT></P>
- <LI><P STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif">Expand
- environment variables like %USERPROFILE%</FONT></P>
- <LI><P STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif">Access
- variable drive letters by volume name (USB sticks)</FONT></P>
- <LI><P STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif">Native
- 32 and 64-bit builds</FONT></P>
- <LI><P STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif">Keep
- versions of deleted/updated files</FONT></P>
- <LI><P STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif">Optimal
- sync sequence prevents disc space bottlenecks</FONT></P>
- <LI><P STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif">Full
- unicode support</FONT></P>
- <LI><P STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif">Highly
- optimized performance</FONT></P>
- <LI><P STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif">Include/exclude
- files via filter</FONT></P>
- <LI><P STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif">Local
- and portable installation</FONT></P>
- <LI><P STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif">Handle
- daylight saving time changes on FAT/FAT32</FONT></P>
- <LI><P STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif">Use
- macros %time%, %date%, et al. for recurring backups</FONT></P>
- <LI><P STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif">Case
- sensitive synchronization</FONT></P>
- <LI><P STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif">Built-in
- locking serializes multiple jobs running against the same network
- share</FONT></P>
-</OL>
</BODY>
</HTML> \ No newline at end of file
diff --git a/BUILD/Help/html/Macros.html b/BUILD/Help/html/Macros.html
index 17b0979e..33d16757 100644
--- a/BUILD/Help/html/Macros.html
+++ b/BUILD/Help/html/Macros.html
@@ -5,7 +5,7 @@
<TITLE></TITLE>
<META NAME="GENERATOR" CONTENT="OpenOffice.org 3.2 (Win32)">
<META NAME="CREATED" CONTENT="20091206;16574000">
- <META NAME="CHANGED" CONTENT="20120511;23110400">
+ <META NAME="CHANGED" CONTENT="20120907;12344300">
<META NAME="Info 1" CONTENT="">
<META NAME="Info 2" CONTENT="">
<META NAME="Info 3" CONTENT="">
@@ -55,16 +55,18 @@ variables: </B><SPAN STYLE="font-weight: normal">(Windows)</SPAN></FONT></P>
<P ALIGN=LEFT STYLE="margin-left: 0.79cm; margin-right: 0.98cm; margin-bottom: 0cm">
<FONT FACE="Tahoma, sans-serif"><FONT FACE="Courier New, monospace">%AllUsersProfile%&nbsp;&nbsp;&nbsp;</FONT>e.
g. <FONT FACE="Courier New, monospace">C:\ProgramData<BR>%AppData%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT>e.
- g. <FONT FACE="Courier New, monospace">C:\Users\username\AppData\Roaming<BR>%LocalAppData%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT>e.
- g. <FONT FACE="Courier New, monospace">C:\Users\username\AppData\Local<BR>%ProgramData%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT>e.
+ g. <FONT FACE="Courier New, monospace">C:\Users\&lt;username&gt;\AppData\Roaming<BR>%ComputerName%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT>e.
+ g. <FONT FACE="Courier New, monospace">Zenju-PC<BR>%LocalAppData%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT>e.
+ g. <FONT FACE="Courier New, monospace">C:\Users\&lt;username&gt;\AppData\Local<BR>%ProgramData%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT>e.
g. <FONT FACE="Courier New, monospace">C:\ProgramData<BR>%ProgramFiles%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT>e.
g. <FONT FACE="Courier New, monospace">C:\Program
Files<BR>%ProgramFiles(x86)%&nbsp;</FONT>e. g. <FONT FACE="Courier New, monospace">C:\Program
Files (x86)<BR>%Public%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT>e.
- g. <FONT FACE="Courier New, monospace">C:\Users\Public<BR>%UserProfile%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT>e.
- g. <FONT FACE="Courier New, monospace">C:\Users\username<BR>%WinDir%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT>e.
- g. <FONT FACE="Courier New, monospace">C:\Windows<BR>%Temp%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT>e.
- g. <FONT FACE="Courier New, monospace">C:\Windows\Temp</FONT></FONT></P>
+ g. <FONT FACE="Courier New, monospace">C:\Users\Public<BR>%Temp%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT>e.
+ g. <FONT FACE="Courier New, monospace">C:\Windows\Temp<BR>%UserName%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT>e.
+ g. <FONT FACE="Courier New, monospace">Zenju<BR>%UserProfile%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT>e.
+ g. <FONT FACE="Courier New, monospace">C:\Users\&lt;username&gt;<BR>%WinDir%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT>e.
+ g. <FONT FACE="Courier New, monospace">C:\Windows</FONT></FONT></P>
</SPAN><BR CLEAR=LEFT><BR>
</P>
<P STYLE="margin-bottom: 0cm"><BR>
@@ -74,22 +76,24 @@ folder locations </B><SPAN STYLE="font-weight: normal">(Windows)</SPAN></FONT></
<P STYLE="margin-left: 1.32cm; margin-bottom: 0cm"><SPAN ID="Rahmen6" DIR="LTR" STYLE="float: left; width: 80%; height: 0.14cm; border: none; padding: 0cm; background: #e6e6e6">
<P ALIGN=LEFT STYLE="margin-left: 0.79cm; margin-right: 0.98cm; margin-bottom: 0cm">
<FONT FACE="Tahoma, sans-serif"><FONT FACE="Courier New, monospace">%csidl_Desktop%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT>e.
- g. <FONT FACE="Courier New, monospace">C:\Users\username\Desktop<BR>%csidl_MyMusic%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT>e.
- g. <FONT FACE="Courier New, monospace">C:\Users\username\My
- Documents\My Music<BR>%csidl_Pictures%&nbsp;&nbsp;&nbsp;&nbsp;</FONT>e.
- g. <FONT FACE="Courier New, monospace">C:\Users\username\My
- Documents\My Pictures<BR>%csidl_MyVideo%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT>e.
- g. <FONT FACE="Courier New, monospace">C:\Users\username\My
- Documents\My Videos<BR>%csidl_MyDocuments%&nbsp;</FONT>e. g.
- <FONT FACE="Courier New, monospace">C:\Users\username\My
- Documents<BR>%csidl_StartMenu%&nbsp;&nbsp;&nbsp;</FONT>e. g.
- <FONT FACE="Courier New, monospace">C:\Users\username\Start
- Menu<BR>%csidl_Favorites%&nbsp;&nbsp;&nbsp;</FONT>e. g.
- <FONT FACE="Courier New, monospace">C:\Users\username\Favorites<BR>%csidl_Templates%&nbsp;&nbsp;&nbsp;</FONT>e.
- g. <FONT FACE="Courier New, monospace">C:\Users\username\Templates<BR>%csidl_Resources%&nbsp;&nbsp;&nbsp;</FONT>e.
- g. <FONT FACE="Courier New, monospace">C:\Windows\Resources</FONT></FONT></P>
-</SPAN><BR CLEAR=LEFT>Note: Each macro listed here also has a variant
-to address public folders. E.g. <FONT FACE="Courier New, monospace">csidl_MyMusic</FONT>
+ g. <FONT FACE="Courier New, monospace">C:\Users\&lt;username&gt;\Desktop<BR>%csidl_Favorites%&nbsp;&nbsp;&nbsp;</FONT>e.
+ g. <FONT FACE="Courier New, monospace">C:\Users\&lt;username&gt;\Favorites<BR>%csidl_MyDocuments%&nbsp;</FONT>e.
+ g. <FONT FACE="Courier New, monospace">C:\Users\&lt;username&gt;\Documents<BR>%csidl_MyMusic%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT>e.
+ g. <FONT FACE="Courier New, monospace">C:\Users\&lt;username&gt;\Music<BR>%csidl_MyPictures%&nbsp;&nbsp;</FONT>e.
+ g. <FONT FACE="Courier New, monospace">C:\Users\&lt;username&gt;\Pictures<BR>%csidl_MyVideos%&nbsp;&nbsp;&nbsp;&nbsp;</FONT>e.
+ g. <FONT FACE="Courier New, monospace">C:\Users\&lt;username&gt;\Videos<BR>%csidl_Nethood%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT>e.
+ g. <FONT FACE="Courier New, monospace">C:\Users\&lt;username&gt;\AppData\Roaming\Microsoft\Windows\Network
+ Shortcuts<BR>%csidl_Programs%&nbsp;&nbsp;&nbsp;&nbsp;</FONT>e. g.
+ <FONT FACE="Courier New, monospace">C:\Users\&lt;username&gt;\AppData\Roaming\Microsoft\Windows\Start
+ Menu\Programs<BR>%csidl_Resources%&nbsp;&nbsp;&nbsp;</FONT>e. g.
+ <FONT FACE="Courier New, monospace">C:\Windows\Resources<BR>%csidl_StartMenu%&nbsp;&nbsp;&nbsp;</FONT>e.
+ g. <FONT FACE="Courier New, monospace">C:\Users\&lt;username&gt;\AppData\Roaming\Microsoft\Windows\Start
+ Menu<BR>%csidl_Startup%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT>e. g.
+ <FONT FACE="Courier New, monospace">C:\Users\&lt;username&gt;\AppData\Roaming\Microsoft\Windows\Start
+ Menu\Programs\StartUp<BR>%csidl_Templates%&nbsp;&nbsp;&nbsp;</FONT>e.
+ g. <FONT FACE="Courier New, monospace">C:\Users\&lt;username&gt;\AppData\Roaming\Microsoft\Windows\Templates</FONT></FONT></P>
+</SPAN><BR CLEAR=LEFT>Note: Most macros listed here also have a
+variant for public folders. E.g. <FONT FACE="Courier New, monospace">csidl_MyMusic</FONT>
&rarr; <FONT FACE="Courier New, monospace">csidl_PublicMusic</FONT>
</P>
<P STYLE="margin-bottom: 0cm"><BR>
@@ -98,10 +102,10 @@ to address public folders. E.g. <FONT FACE="Courier New, monospace">csidl_MyMusi
<P STYLE="margin-left: 1.32cm; margin-bottom: 0cm"><SPAN ID="Rahmen1" DIR="LTR" STYLE="float: left; width: 80%; height: 0.14cm; border: none; padding: 0cm; background: #e6e6e6">
<UL>
<LI><P ALIGN=LEFT STYLE="margin-right: 0.98cm; margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif"><FONT FACE="Courier New, monospace">C:\Backup\%username%_Config&nbsp;</FONT>expands
- to<FONT FACE="Courier New, monospace"><BR>C:\Backup\ZenJu_Config</FONT></FONT></P>
+ to<FONT FACE="Courier New, monospace"><BR>C:\Backup\Zenju_Config</FONT></FONT></P>
<LI><P ALIGN=LEFT STYLE="margin-right: 0.98cm; margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif"><FONT FACE="Courier New, monospace">%appdata%\FreeFileSync&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT>expands
to<FONT FACE="Courier New, monospace"><BR>C:\Documents and
- Settings\ZenJu\Application Data\FreeFileSync</FONT></FONT></P>
+ Settings\Zenju\Application Data\FreeFileSync</FONT></FONT></P>
</UL>
</SPAN><BR CLEAR=LEFT><BR>
</P>
@@ -109,25 +113,24 @@ to address public folders. E.g. <FONT FACE="Courier New, monospace">csidl_MyMusi
</P>
<P STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif"><B>Hint:</B></FONT></P>
<P STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif">You can
-add a great amount of flexibility to Batch Synchronization
+add a great amount of flexibility to batch synchronization
(*.ffs_batch) by creating new temporary environment variables in a
*.bat/*.cmd file that are evaluated by FreeFileSync at runtime!</FONT></P>
<P STYLE="margin-bottom: 0cm"><BR>
</P>
<P STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif"><B>Example:</B></FONT></P>
<P STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif">The
-batch configuration file <FONT FACE="Courier New, monospace">C:\SyncJob.ffs_batch
+FreeFileSync batch file <FONT FACE="Courier New, monospace">C:\SyncJob.ffs_batch
</FONT>contains macro <FONT FACE="Courier New, monospace">%MyVar%
-</FONT>instead of an absolute target directory and is invoked by a
-*.cmd file:</FONT></P>
+</FONT>instead of an absolute target folder and is invoked by a *.cmd
+file:</FONT></P>
<P STYLE="margin-left: 1.32cm; margin-bottom: 0cm"><SPAN ID="Rahmen5" DIR="LTR" STYLE="float: left; width: 80%; height: 0.14cm; border: none; padding: 0cm; background: #e6e6e6">
<P ALIGN=LEFT STYLE="margin-left: 0.79cm; margin-right: 0.98cm; margin-bottom: 0cm">
<FONT FACE="Tahoma, sans-serif"><FONT FACE="Courier New, monospace">set
- MyVar=C:\Target<BR>cd &quot;C:\Program
- files\FreeFileSync&quot;<BR>FreeFileSync.exe C:\SyncJob.ffs_batch
- </FONT>(-&gt;<FONT FACE="Courier New, monospace">%MyVar% </FONT>is
- replaced by <FONT FACE="Courier New, monospace">C:\Target </FONT>during
- execution)</FONT></P>
+ MyVar=C:\Target<BR>&quot;C:\Program
+ files\FreeFileSync\FreeFileSync.exe&quot;
+ C:\SyncJob.ffs_batch<BR></FONT><FONT COLOR="#808080"><FONT FACE="Courier New, monospace"><I><B>::%MyVar%
+ is resolved as C:\Target during synchronization</B></I></FONT></FONT></FONT></P>
</SPAN><BR CLEAR=LEFT><BR>
</P>
<P STYLE="margin-bottom: 0cm"><BR>
diff --git a/BUILD/Help/html/RealtimeSync.html b/BUILD/Help/html/RealtimeSync.html
index 0a302a0a..49187f40 100644
--- a/BUILD/Help/html/RealtimeSync.html
+++ b/BUILD/Help/html/RealtimeSync.html
@@ -23,7 +23,7 @@
</STYLE>
</HEAD>
<BODY LANG="en-US" DIR="LTR">
-<H3 CLASS="western" ALIGN=CENTER><IMG SRC="../img/rtsicon.png" NAME="Grafik6" ALIGN=ABSMIDDLE WIDTH=37 HEIGHT=37 BORDER=0>
+<H3 CLASS="western" ALIGN=CENTER><IMG SRC="../img/rtsicon.png" NAME="Grafik6" ALIGN=ABSMIDDLE WIDTH=36 HEIGHT=36 BORDER=0>
<FONT SIZE=4 STYLE="font-size: 16pt">RealtimeSync<BR></FONT><FONT SIZE=3><I><SPAN STYLE="font-weight: normal">-
Automated Synchronization -</SPAN></I></FONT></H3>
<P ALIGN=LEFT><BR><BR>
@@ -50,7 +50,7 @@ but also sets up the command line to execute the </FONT><FONT FACE="Courier New,
Now press &quot;</FONT><FONT FACE="Tahoma, sans-serif"><I>Start</I></FONT><FONT FACE="Tahoma, sans-serif">&quot;
to begin monitoring.</FONT></P>
<UL>
- <P STYLE="margin-bottom: 0cm"><IMG SRC="../img/RealtimeSync.png" NAME="Grafik3" ALIGN=MIDDLE WIDTH=461 HEIGHT=446 BORDER=0></P>
+ <P STYLE="margin-bottom: 0cm"><IMG SRC="../img/RealtimeSync.png" NAME="Grafik3" ALIGN=MIDDLE BORDER=0></P>
</UL>
<P STYLE="margin-bottom: 0cm"><BR>
</P>
@@ -90,7 +90,7 @@ ffs_batch configuration into the USB stick's root directory and have
it called when the stick is mounted. Then configure RealtimeSync as
shown in the following:</FONT></P>
<UL>
- <P><IMG SRC="../img/WatchUsbInsert.png" NAME="Grafik2" ALIGN=BOTTOM WIDTH=442 HEIGHT=440 BORDER=0></P>
+ <P><IMG SRC="../img/WatchUsbInsert.png" NAME="Grafik2" ALIGN=BOTTOM BORDER=0></P>
</UL>
<P STYLE="margin-bottom: 0cm"><BR>
</P>
diff --git a/BUILD/Help/html/Run as Service.html b/BUILD/Help/html/Run as Service.html
index 7fdd1393..f6329a33 100644
--- a/BUILD/Help/html/Run as Service.html
+++ b/BUILD/Help/html/Run as Service.html
@@ -5,7 +5,7 @@
<TITLE></TITLE>
<META NAME="GENERATOR" CONTENT="OpenOffice.org 3.2 (Win32)">
<META NAME="CREATED" CONTENT="20091206;16574000">
- <META NAME="CHANGED" CONTENT="20120903;12221300">
+ <META NAME="CHANGED" CONTENT="20120905;21304100">
<META NAME="Info 1" CONTENT="">
<META NAME="Info 2" CONTENT="">
<META NAME="Info 3" CONTENT="">
@@ -22,115 +22,50 @@
</HEAD>
<BODY LANG="en-US" DIR="LTR">
<H2 CLASS="western"><FONT FACE="Tahoma, sans-serif"><FONT SIZE=4 STYLE="font-size: 15pt">Run
-as Service <SPAN STYLE="font-weight: normal">(Windows only)</SPAN></FONT></FONT></H2>
+as Service <SPAN STYLE="font-weight: normal">(Windows)</SPAN></FONT></FONT></H2>
<P STYLE="margin-bottom: 0cm"><BR>
</P>
-<P STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif">The
-following step-by-step guide describes how to setup RealtimeSync (or
-any other application) as a Windows Service. This is necessary if the
-tool shall run on the SYSTEM account independent from currently
-logged-in users. If you are the only user and all you want is to
-start RealtimeSync automatically then it's better to <B>place a link
-into Windows' Autostart folder</B>, specifying RealtimeSync.exe and
-the .ffs_batch or .ffs_real file as argument.</FONT></P>
+<P STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif">RealtimeSync
+is designed as a background process which does not need further
+attention once it is running. Depending on your requirements there
+are a number of ways to start it together with the operating system.
+Generally the goal is to execute a command line like the following:
+</FONT><FONT FACE="Tahoma, sans-serif"><I><SPAN STYLE="font-weight: normal">&lt;installation
+folder&gt;\RealtimeSync.exe &lt;path to *.ffs_real or *.ffs_batch
+file&gt;</SPAN></I></FONT></P>
<P STYLE="margin-bottom: 0cm"><BR>
</P>
-<P ALIGN=LEFT STYLE="margin-right: 0.98cm; margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif">Reference:
-<A HREF="http://support.microsoft.com/kb/137890">http://support.microsoft.com/kb/137890</A></FONT></P>
-<P STYLE="margin-bottom: 0cm"><BR>
-</P>
-<P STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif">1. Get
-access to the command-line tools &quot;</FONT><FONT FACE="Courier New, monospace">instsrv.exe</FONT><FONT FACE="Tahoma, sans-serif">&quot;
-and &quot;</FONT><FONT FACE="Courier New, monospace">srvany.exe</FONT><FONT FACE="Tahoma, sans-serif">&quot;
-which come with the Windows Server 2003 Resource Kit Tools:</FONT></P>
-<P STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif">Download:
-<A HREF="http://www.microsoft.com/downloads/details.aspx?familyid=9d467a69-57ff-4ae7-96ee-b18c4790cffd&amp;displaylang=en">http://www.microsoft.com/downloads/details.aspx?familyid=9d467a69-57ff-4ae7-96ee-b18c4790cffd&amp;displaylang=en</A></FONT></P>
-<P STYLE="margin-bottom: 0cm"><BR>
-</P>
-<P STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif">2.
-Create and register a new Service via command line:</FONT></P>
+<P STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif"><B>Example:</B></FONT></P>
<UL>
- <P STYLE="margin-right: 0.98cm"><SPAN ID="Rahmen4" DIR="LTR" STYLE="float: left; width: 80%; height: 0.14cm; border: none; padding: 0cm; background: #e6e6e6">
+ <P STYLE="margin-right: 0.98cm"><SPAN ID="Rahmen2" DIR="LTR" STYLE="float: left; width: 80%; height: 0.14cm; border: none; padding: 0cm; background: #e6e6e6">
<P ALIGN=LEFT STYLE="margin-left: 0.79cm; margin-right: 0.98cm; margin-bottom: 0cm">
- <FONT FACE="Courier New, monospace">instsrv &lt;ServiceName&gt;
- &lt;PathToResourceKit&gt;\srvany.exe</FONT></P>
- </SPAN><BR CLEAR=LEFT>&nbsp;<BR><IMG SRC="../img/RunAsService_html_4f230a46.png" NAME="Grafik9" ALIGN=BOTTOM WIDTH=430 HEIGHT=107 BORDER=0></P>
+ <FONT FACE="Courier New, monospace">&quot;C:\Program
+ Files\FreeFileSync\RealtimeSync.exe&quot; &quot;C:\some
+ folder\SyncJob.ffs_batch&quot;</FONT></P>
+ </SPAN><BR CLEAR=LEFT>
+ </P>
</UL>
-<P STYLE="margin-bottom: 0cm"><BR>
+<P STYLE="margin-right: 0.98cm"><BR><BR>
</P>
-<P STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif">3. Link
-the new Service with RealtimeSync:</FONT></P>
-<UL>
- <LI><P STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif">Open
- the Registry editor (Regedit.exe) and navigate to key
- &quot;</FONT><FONT FACE="Courier New, monospace">HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\&lt;ServiceName&gt;</FONT><FONT FACE="Tahoma, sans-serif">&quot;</FONT></P>
- <LI><P STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif">Add
- a new key &quot;</FONT><FONT FACE="Courier New, monospace">Parameters</FONT><FONT FACE="Tahoma, sans-serif">&quot;.<BR><IMG SRC="../img/RunAsService_html_bf02de4e.png" NAME="Grafik8" ALIGN=BOTTOM WIDTH=249 HEIGHT=101 BORDER=0></FONT></P>
- <LI><P STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif">Add
- a new String value named &quot;</FONT><FONT FACE="Courier New, monospace">Application</FONT><FONT FACE="Tahoma, sans-serif">&quot;
- and specify a command line that shall be executed as value.<BR><IMG SRC="../img/RunAsService_html_m3be0f332.png" NAME="Grafik10" ALIGN=BOTTOM WIDTH=620 HEIGHT=58 BORDER=0></FONT></P>
-</UL>
-<P STYLE="margin-bottom: 0cm"><BR>
-</P>
-<P STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif">The new
-service is now ready for operation!</FONT></P>
+<OL>
+ <LI><P STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif"><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">RealtimeSync
+ should be monitoring only while a specific user is logged in: </SPAN></SPAN>Create
+ a new shortcut, enter the command line from above as target and
+ place it into the user's autostart folder.</FONT></P>
+ <P STYLE="margin-bottom: 0cm"><IMG SRC="../img/create_shortcut.png" NAME="Grafik3" ALIGN=BOTTOM BORDER=0></P>
+ <P STYLE="margin-bottom: 0cm"><IMG SRC="../img/shortcut_properties.png" NAME="Grafik4" ALIGN=BOTTOM BORDER=0></P>
+ <P STYLE="margin-bottom: 0cm">&nbsp;</P>
+ <LI><P STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif">RealtimeSync
+ should be monitoring while Windows is online irrespective of
+ currently logged in users: Create a new task in your operating
+ systems's task scheduler and have it execute the command line above
+ when the system starts. See <A HREF="Schedule%20a%20Batch%20Job.html">Schedule
+ a Batch Job</A> for an example how to add a new task. Then change
+ the user to run the task to &quot;SYSTEM&quot; - a special user
+ account always running in the background.</FONT></P>
+ <P STYLE="margin-bottom: 0cm"><IMG SRC="../img/schedule_realtimesync.png" NAME="Grafik1" ALIGN=BOTTOM BORDER=0></P>
+</OL>
<P STYLE="margin-bottom: 0cm"><BR>
</P>
-<P STYLE="margin-left: 1.46cm; margin-bottom: 0cm"><SPAN ID="Rahmen1" DIR="LTR" STYLE="float: left; width: 80%; height: 0.14cm; border: 1px solid #000080; padding: 0.05cm; background: #ccccff">
- <P ALIGN=LEFT STYLE="margin-left: 0.79cm; margin-right: 0.98cm; margin-bottom: 0cm">
- <FONT FACE="Tahoma, sans-serif"><B>Attention</B><BR>When running
- RealtimeSync as a service the application has no means to interact
- with the user. Therefore any popup dialog will block progress!
- Consider the following options when setting up a FreeFileSync batch
- job:</FONT></P>
- <UL>
- <LI><P ALIGN=LEFT STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif">Disable
- checkbox &quot;<I>Show progress dialog</I>&quot; or automatically
- close it after synchronization.</FONT></P>
- <LI><P ALIGN=LEFT STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif">Set
- &quot;<I>Error handling</I>&quot; to &quot;<I>Exit instantly</I>&quot;
- or &quot;<I>Ignore errors</I>&quot;.</FONT></P>
- <LI><P ALIGN=LEFT STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif">To
- ease debugging or initial setup &quot;Allow service to interact
- with desktop&quot;. The may show error dialogs otherwise hidden by
- the SYSTEM account.</FONT></P>
- </UL>
-</SPAN><BR CLEAR=LEFT><BR><IMG SRC="../img/RunAsService_html_13819326743214.png" NAME="Grafik2" ALIGN=TEXTTOP WIDTH=535 HEIGHT=589 BORDER=0></P>
-<P STYLE="margin-left: 1.46cm; margin-bottom: 0cm"><BR>
-</P>
-<P STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif">You can
-start the service now via command line or Windows Service
-administration:</FONT></P>
-<UL>
- <P STYLE="margin-right: 0.98cm"><SPAN ID="Rahmen5" DIR="LTR" STYLE="float: left; width: 80%; height: 0.14cm; border: none; padding: 0cm; background: #e6e6e6">
- <P ALIGN=LEFT STYLE="margin-left: 0.79cm; margin-right: 0.98cm; margin-bottom: 0cm">
- <FONT FACE="Tahoma, sans-serif">net start &lt;ServiceName&gt;</FONT></P>
- </SPAN><BR CLEAR=LEFT>&nbsp;<BR><IMG SRC="../img/RunAsService_html_17e8fbfe.png" NAME="Grafik5" ALIGN=BOTTOM WIDTH=640 HEIGHT=55 BORDER=0><BR>&nbsp;<BR><IMG SRC="../img/RunAsService_html_7aa44556.png" NAME="Grafik1" ALIGN=BOTTOM WIDTH=548 HEIGHT=291 BORDER=0></P>
-</UL>
-<P ALIGN=LEFT STYLE="margin-right: 0.98cm; margin-bottom: 0cm"><BR>
-</P>
-<P STYLE="margin-left: 1.46cm; margin-bottom: 0cm"><SPAN ID="Rahmen7" DIR="LTR" STYLE="float: left; width: 80%; height: 0.14cm; border: 1px solid #000080; padding: 0.05cm; background: #ccccff">
- <P ALIGN=LEFT STYLE="margin-left: 0.79cm; margin-right: 0.98cm; margin-bottom: 0cm">
- <FONT FACE="Tahoma, sans-serif"><B>Note</B><BR>By default the
- service is created with start-up type &quot;automatic&quot; which
- runs it on Windows start. This behavior can be changed in Windows
- Service administration.</FONT></P>
-</SPAN><BR CLEAR=LEFT><BR>
-</P>
-<P STYLE="margin-left: 1.46cm; margin-bottom: 0cm"><IMG SRC="../img/RunAsService_html_m3e56d901.png" NAME="Grafik6" ALIGN=BOTTOM WIDTH=410 HEIGHT=468 BORDER=0></P>
-<P STYLE="margin-left: 1.46cm; margin-bottom: 0cm"><BR>
-</P>
-<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
-</P>
-<P STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif">If the
-Service shall be removed from the system, enter via command line:</FONT></P>
-<UL>
- <P STYLE="margin-right: 0.98cm"><SPAN ID="Rahmen6" DIR="LTR" STYLE="float: left; width: 80%; height: 0.14cm; border: none; padding: 0cm; background: #e6e6e6">
- <P ALIGN=LEFT STYLE="margin-left: 0.79cm; margin-right: 0.98cm; margin-bottom: 0cm">
- <FONT FACE="Tahoma, sans-serif">instsrv &lt;ServiceName&gt; remove</FONT></P>
- </SPAN><BR CLEAR=LEFT>&nbsp;<BR><IMG SRC="../img/RunAsService_html_68e0fe53.png" NAME="Grafik7" ALIGN=MIDDLE WIDTH=640 HEIGHT=52 BORDER=0></P>
-</UL>
-<P ALIGN=LEFT STYLE="margin-right: 0.98cm; margin-bottom: 0cm"><BR>
-</P>
</BODY>
</HTML> \ No newline at end of file
diff --git a/BUILD/Help/html/Schedule a Batch Job.html b/BUILD/Help/html/Schedule a Batch Job.html
index 93fa804e..63533886 100644
--- a/BUILD/Help/html/Schedule a Batch Job.html
+++ b/BUILD/Help/html/Schedule a Batch Job.html
@@ -66,7 +66,7 @@ a Batch Job</FONT></FONT></H2>
<UL>
<LI><P STYLE="margin-bottom: 0cm; font-weight: normal"><FONT FACE="Tahoma, sans-serif"><FONT COLOR="#000000"><FONT SIZE=3>Use
quotes if any paths contain spaces, e.g.: </FONT></FONT><FONT COLOR="#000000"><FONT FACE="Courier New, monospace"><FONT SIZE=3>&quot;C:\some
- folder\SyncJob.ffs_batch&quot;</FONT></FONT></FONT><FONT COLOR="#000000"><FONT SIZE=3><BR></FONT></FONT><IMG SRC="../img/win7scheduler.png" NAME="Grafik1" ALIGN=BOTTOM WIDTH=708 HEIGHT=321 BORDER=0></FONT></P>
+ folder\SyncJob.ffs_batch&quot;</FONT></FONT></FONT><FONT COLOR="#000000"><FONT SIZE=3><BR></FONT></FONT><IMG SRC="../img/win7scheduler.png" NAME="Grafik1" ALIGN=BOTTOM BORDER=0></FONT></P>
</UL>
</OL>
<P STYLE="margin-bottom: 0cm"><SPAN ID="Rahmen2" DIR="LTR" STYLE="float: left; width: 80%; height: 0.14cm; border: 1px solid #000080; padding: 0.05cm; background: #ccccff">
@@ -93,7 +93,7 @@ a Batch Job</FONT></FONT></H2>
<LI><P STYLE="margin-bottom: 0cm; font-weight: normal"><FONT FACE="Tahoma, sans-serif">Enter
&quot;Run:&quot; as: <FONT FACE="Courier New, monospace">&lt;FreeFileSync
installation directory&gt;\FreeFileSync.exe &lt;job
- name&gt;.ffs_batch</FONT><BR><IMG SRC="../img/ScheduleBatch_html_m10bf0d36.gif" NAME="Grafik2" ALIGN=BOTTOM WIDTH=406 HEIGHT=455 BORDER=0><BR>&nbsp;</FONT></P>
+ name&gt;.ffs_batch</FONT><BR><IMG SRC="../img/ScheduleBatch_html_m10bf0d36.gif" NAME="Grafik2" ALIGN=BOTTOM BORDER=0><BR>&nbsp;</FONT></P>
</UL>
<LI><P STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif"><B>Ubuntu
Linux Gnome-schedule:</B></FONT></P>
@@ -118,7 +118,7 @@ a Batch Job</FONT></FONT></H2>
<UL>
<LI><P STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif"><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">Specify
the command as:</SPAN></SPAN></FONT> <FONT FACE="Courier New, monospace"><I><SPAN STYLE="font-weight: normal">&lt;FreeFileSync
- installation directory&gt;/FreeFileSync &lt;job name&gt;.ffs_batch<BR></SPAN></I></FONT><IMG SRC="../img/ubuntuScheduler.png" NAME="Grafik5" ALIGN=BOTTOM WIDTH=629 HEIGHT=560 BORDER=0></P>
+ installation directory&gt;/FreeFileSync &lt;job name&gt;.ffs_batch<BR></SPAN></I></FONT><IMG SRC="../img/ubuntuScheduler.png" NAME="Grafik5" ALIGN=BOTTOM BORDER=0></P>
</UL>
</OL>
</OL>
diff --git a/BUILD/Help/html/Variable Drive Letters.html b/BUILD/Help/html/Variable Drive Letters.html
index 2effaadd..07620ded 100644
--- a/BUILD/Help/html/Variable Drive Letters.html
+++ b/BUILD/Help/html/Variable Drive Letters.html
@@ -41,7 +41,7 @@ name]\path</FONT></FONT></P>
</P>
<P STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif">It is
not required to look up and enter the volume name manually! Just
-select the corresponding entry in the drop down menu.<BR></FONT><IMG SRC="../img/VolumeName.png" NAME="Grafik1" ALIGN=BOTTOM WIDTH=424 HEIGHT=86 BORDER=0></P>
+select the corresponding entry in the drop down menu.<BR></FONT><IMG SRC="../img/VolumeName.png" NAME="Grafik1" ALIGN=BOTTOM BORDER=0></P>
<P STYLE="margin-bottom: 0cm"><BR>
</P>
<P STYLE="margin-bottom: 0cm"><FONT FACE="Tahoma, sans-serif"><B>Option
diff --git a/BUILD/Help/img/CmpSettings.png b/BUILD/Help/img/CmpSettings.png
index d2548891..2b48ad43 100644
--- a/BUILD/Help/img/CmpSettings.png
+++ b/BUILD/Help/img/CmpSettings.png
Binary files differ
diff --git a/BUILD/Help/img/CompareButton.png b/BUILD/Help/img/CompareButton.png
index c45a1e86..b761e929 100644
--- a/BUILD/Help/img/CompareButton.png
+++ b/BUILD/Help/img/CompareButton.png
Binary files differ
diff --git a/BUILD/Help/img/MainDialog.png b/BUILD/Help/img/MainDialog.png
index bc909996..5ac7aa5a 100644
--- a/BUILD/Help/img/MainDialog.png
+++ b/BUILD/Help/img/MainDialog.png
Binary files differ
diff --git a/BUILD/Help/img/RealtimeSync.png b/BUILD/Help/img/RealtimeSync.png
index 56e55aea..5a41b939 100644
--- a/BUILD/Help/img/RealtimeSync.png
+++ b/BUILD/Help/img/RealtimeSync.png
Binary files differ
diff --git a/BUILD/Help/img/RunAsService_html_13819326743214.png b/BUILD/Help/img/RunAsService_html_13819326743214.png
deleted file mode 100644
index 0ca018d1..00000000
--- a/BUILD/Help/img/RunAsService_html_13819326743214.png
+++ /dev/null
Binary files differ
diff --git a/BUILD/Help/img/RunAsService_html_17e8fbfe.png b/BUILD/Help/img/RunAsService_html_17e8fbfe.png
deleted file mode 100644
index 23eb6083..00000000
--- a/BUILD/Help/img/RunAsService_html_17e8fbfe.png
+++ /dev/null
Binary files differ
diff --git a/BUILD/Help/img/RunAsService_html_4f230a46.png b/BUILD/Help/img/RunAsService_html_4f230a46.png
deleted file mode 100644
index a32a442d..00000000
--- a/BUILD/Help/img/RunAsService_html_4f230a46.png
+++ /dev/null
Binary files differ
diff --git a/BUILD/Help/img/RunAsService_html_68e0fe53.png b/BUILD/Help/img/RunAsService_html_68e0fe53.png
deleted file mode 100644
index 5639a21c..00000000
--- a/BUILD/Help/img/RunAsService_html_68e0fe53.png
+++ /dev/null
Binary files differ
diff --git a/BUILD/Help/img/RunAsService_html_7aa44556.png b/BUILD/Help/img/RunAsService_html_7aa44556.png
deleted file mode 100644
index b37fe6e4..00000000
--- a/BUILD/Help/img/RunAsService_html_7aa44556.png
+++ /dev/null
Binary files differ
diff --git a/BUILD/Help/img/RunAsService_html_bf02de4e.png b/BUILD/Help/img/RunAsService_html_bf02de4e.png
deleted file mode 100644
index 2bdac2db..00000000
--- a/BUILD/Help/img/RunAsService_html_bf02de4e.png
+++ /dev/null
Binary files differ
diff --git a/BUILD/Help/img/RunAsService_html_m3be0f332.png b/BUILD/Help/img/RunAsService_html_m3be0f332.png
deleted file mode 100644
index 5ad45cfa..00000000
--- a/BUILD/Help/img/RunAsService_html_m3be0f332.png
+++ /dev/null
Binary files differ
diff --git a/BUILD/Help/img/RunAsService_html_m3e56d901.png b/BUILD/Help/img/RunAsService_html_m3e56d901.png
deleted file mode 100644
index 860d1543..00000000
--- a/BUILD/Help/img/RunAsService_html_m3e56d901.png
+++ /dev/null
Binary files differ
diff --git a/BUILD/Help/img/SetupBatch.png b/BUILD/Help/img/SetupBatch.png
index 71ff0996..565149b0 100644
--- a/BUILD/Help/img/SetupBatch.png
+++ b/BUILD/Help/img/SetupBatch.png
Binary files differ
diff --git a/BUILD/Help/img/SourceTarget.png b/BUILD/Help/img/SourceTarget.png
index df8921d6..a9ede2fe 100644
--- a/BUILD/Help/img/SourceTarget.png
+++ b/BUILD/Help/img/SourceTarget.png
Binary files differ
diff --git a/BUILD/Help/img/SyncConfigButton.png b/BUILD/Help/img/SyncConfigButton.png
index 2ac5c94e..53e4ecb1 100644
--- a/BUILD/Help/img/SyncConfigButton.png
+++ b/BUILD/Help/img/SyncConfigButton.png
Binary files differ
diff --git a/BUILD/Help/img/SynchronizeButton.png b/BUILD/Help/img/SynchronizeButton.png
index a8b8002b..084edcb7 100644
--- a/BUILD/Help/img/SynchronizeButton.png
+++ b/BUILD/Help/img/SynchronizeButton.png
Binary files differ
diff --git a/BUILD/Help/img/WatchUsbInsert.png b/BUILD/Help/img/WatchUsbInsert.png
index a4d17a4d..b62d9f60 100644
--- a/BUILD/Help/img/WatchUsbInsert.png
+++ b/BUILD/Help/img/WatchUsbInsert.png
Binary files differ
diff --git a/BUILD/Help/img/create_shortcut.png b/BUILD/Help/img/create_shortcut.png
new file mode 100644
index 00000000..fba73ec1
--- /dev/null
+++ b/BUILD/Help/img/create_shortcut.png
Binary files differ
diff --git a/BUILD/Help/img/ffsicon.png b/BUILD/Help/img/ffsicon.png
index 7ff53bb6..ed2eafc1 100644
--- a/BUILD/Help/img/ffsicon.png
+++ b/BUILD/Help/img/ffsicon.png
Binary files differ
diff --git a/BUILD/Help/img/rtsicon.png b/BUILD/Help/img/rtsicon.png
index dabaa256..af51f1bf 100644
--- a/BUILD/Help/img/rtsicon.png
+++ b/BUILD/Help/img/rtsicon.png
Binary files differ
diff --git a/BUILD/Help/img/schedule_realtimesync.png b/BUILD/Help/img/schedule_realtimesync.png
new file mode 100644
index 00000000..285804b4
--- /dev/null
+++ b/BUILD/Help/img/schedule_realtimesync.png
Binary files differ
diff --git a/BUILD/Help/img/shortcut_properties.png b/BUILD/Help/img/shortcut_properties.png
new file mode 100644
index 00000000..c801f6d3
--- /dev/null
+++ b/BUILD/Help/img/shortcut_properties.png
Binary files differ
diff --git a/BUILD/Help/img/win7scheduler.png b/BUILD/Help/img/win7scheduler.png
index 29fa1f36..08314d16 100644
--- a/BUILD/Help/img/win7scheduler.png
+++ b/BUILD/Help/img/win7scheduler.png
Binary files differ
diff --git a/BUILD/Languages/german.lng b/BUILD/Languages/german.lng
index d142df24..10f19f6d 100644
--- a/BUILD/Languages/german.lng
+++ b/BUILD/Languages/german.lng
@@ -1,6 +1,6 @@
<header>
<language name>Deutsch</language name>
- <translator>ZenJu</translator>
+ <translator>Zenju</translator>
<locale>de_DE</locale>
<flag file>germany.png</flag file>
<plural forms>2</plural forms>
@@ -363,9 +363,6 @@ Die Befehlszeile wird ausgelöst wenn:
<source>Switching to FreeFileSync main dialog...</source>
<target>Wechsle in FreeFileSyncs Hauptdialog...</target>
-<source>Unable to connect to sourceforge.net!</source>
-<target>Es konnte keine Verbindung zu Sourceforge.net aufgebaut werden!</target>
-
<source>A new version of FreeFileSync is available:</source>
<target>Eine neue Version von FreeFileSync ist verfügbar:</target>
@@ -378,6 +375,12 @@ Die Befehlszeile wird ausgelöst wenn:
<source>Information</source>
<target>Information</target>
+<source>Unable to connect to sourceforge.net!</source>
+<target>Es konnte keine Verbindung zu Sourceforge.net aufgebaut werden!</target>
+
+<source>Current FreeFileSync version number was not found online! Do you want to check manually?</source>
+<target>Die aktuelle FreeFileSync Versionsnummer wurde online nicht gefunden! Möchten Sie manuell prüfen?</target>
+
<source>Do you want FreeFileSync to automatically check for updates every week?</source>
<target>Soll FreeFileSync automatisch jede Woche nach Aktualisierungen suchen?</target>
@@ -495,11 +498,11 @@ Die Befehlszeile wird ausgelöst wenn:
<source>Swap sides</source>
<target>Seiten vertauschen</target>
-<source>Load configuration from file</source>
-<target>Konfiguration aus Datei laden</target>
+<source>Open...</source>
+<target>Öffnen...</target>
-<source>Save current configuration to file</source>
-<target>Aktuelle Konfiguration in Datei speichern</target>
+<source>Save</source>
+<target>Speichern</target>
<source>Last used configurations (press DEL to remove from list)</source>
<target>Zuletzt benutzte Konfigurationen (Entf-Taste löscht Einträge)</target>
@@ -864,6 +867,9 @@ Achtung: Dateinamen müssen relativ zu den Basisverzeichnissen sein!
<source><Last session></source>
<target><Letzte Sitzung></target>
+<source>Folder Comparison and Synchronization</source>
+<target>Ordnervergleich und Synchronisation</target>
+
<source>Configuration saved!</source>
<target>Konfiguration gespeichert!</target>
@@ -879,9 +885,6 @@ Achtung: Dateinamen müssen relativ zu den Basisverzeichnissen sein!
<source>Configuration loaded!</source>
<target>Konfiguration geladen!</target>
-<source>Folder Comparison and Synchronization</source>
-<target>Ordnervergleich und Synchronisation</target>
-
<source>Hide files that exist on left side only</source>
<target>Nur links existierende Dateien ausblenden</target>
@@ -1146,42 +1149,6 @@ Achtung: Dateinamen müssen relativ zu den Basisverzeichnissen sein!
<source>Percentage</source>
<target>Prozent</target>
-<source>%x TB</source>
-<target>%x TB</target>
-
-<source>%x PB</source>
-<target>%x PB</target>
-
-<source>%x%</source>
-<target>%x%</target>
-
-<source>
-<pluralform>1 min</pluralform>
-<pluralform>%x min</pluralform>
-</source>
-<target>
-<pluralform>1 Min.</pluralform>
-<pluralform>%x Min.</pluralform>
-</target>
-
-<source>
-<pluralform>1 hour</pluralform>
-<pluralform>%x hours</pluralform>
-</source>
-<target>
-<pluralform>1 Stunde</pluralform>
-<pluralform>%x Stunden</pluralform>
-</target>
-
-<source>
-<pluralform>1 day</pluralform>
-<pluralform>%x days</pluralform>
-</source>
-<target>
-<pluralform>1 Tag</pluralform>
-<pluralform>%x Tage</pluralform>
-</target>
-
<source>Cannot monitor directory %x.</source>
<target>Das Verzeichnis %x kann nicht überwacht werden.</target>
@@ -1239,6 +1206,42 @@ Achtung: Dateinamen müssen relativ zu den Basisverzeichnissen sein!
<source>Detected endless directory recursion.</source>
<target>Eine endlose Verzeichnisrekursion wurde erkannt.</target>
+<source>%x TB</source>
+<target>%x TB</target>
+
+<source>%x PB</source>
+<target>%x PB</target>
+
+<source>%x%</source>
+<target>%x%</target>
+
+<source>
+<pluralform>1 min</pluralform>
+<pluralform>%x min</pluralform>
+</source>
+<target>
+<pluralform>1 Min.</pluralform>
+<pluralform>%x Min.</pluralform>
+</target>
+
+<source>
+<pluralform>1 hour</pluralform>
+<pluralform>%x hours</pluralform>
+</source>
+<target>
+<pluralform>1 Stunde</pluralform>
+<pluralform>%x Stunden</pluralform>
+</target>
+
+<source>
+<pluralform>1 day</pluralform>
+<pluralform>%x days</pluralform>
+</source>
+<target>
+<pluralform>1 Tag</pluralform>
+<pluralform>%x Tage</pluralform>
+</target>
+
<source>Cannot set privilege %x.</source>
<target>Das Privileg %x kann nicht gesetzt werden.</target>
diff --git a/BUILD/Resources.zip b/BUILD/Resources.zip
index 44b9749e..676a8d0d 100644
--- a/BUILD/Resources.zip
+++ b/BUILD/Resources.zip
Binary files differ
diff --git a/FreeFileSync.cbp b/FreeFileSync.cbp
index e924a35f..becb6722 100644
--- a/FreeFileSync.cbp
+++ b/FreeFileSync.cbp
@@ -412,8 +412,8 @@
<Option target="Release" />
<Option target="Debug-DLL" />
</Unit>
- <Unit filename="wx+\format_unit.cpp" />
- <Unit filename="wx+\format_unit.h">
+ <Unit filename="zen\format_unit.cpp" />
+ <Unit filename="zen\format_unit.h">
<Option target="Release" />
<Option target="Debug-DLL" />
</Unit>
diff --git a/FreeFileSync.vcxproj b/FreeFileSync.vcxproj
index e144579e..706250a5 100644
--- a/FreeFileSync.vcxproj
+++ b/FreeFileSync.vcxproj
@@ -266,7 +266,6 @@
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
</ClCompile>
- <ClCompile Include="wx+\format_unit.cpp" />
<ClCompile Include="wx+\graph.cpp" />
<ClCompile Include="wx+\grid.cpp" />
<ClCompile Include="wx+\mouse_move_dlg.cpp" />
@@ -278,6 +277,7 @@
<ClCompile Include="zen\file_id.cpp" />
<ClCompile Include="zen\file_io.cpp" />
<ClCompile Include="zen\file_traverser.cpp" />
+ <ClCompile Include="zen\format_unit.cpp" />
<ClCompile Include="zen\privilege.cpp" />
<ClCompile Include="zen\recycler.cpp" />
<ClCompile Include="zen\zstring.cpp" />
diff --git a/Makefile b/Makefile
index 370ba305..9d41728e 100644
--- a/Makefile
+++ b/Makefile
@@ -84,9 +84,9 @@ CPP_LIST+=zen/file_id.cpp
CPP_LIST+=zen/file_io.cpp
CPP_LIST+=zen/file_traverser.cpp
CPP_LIST+=zen/zstring.cpp
+CPP_LIST+=zen/format_unit.cpp
CPP_LIST+=wx+/grid.cpp
CPP_LIST+=wx+/button.cpp
-CPP_LIST+=wx+/format_unit.cpp
CPP_LIST+=wx+/graph.cpp
CPP_LIST+=wx+/tooltip.cpp
CPP_LIST+=wx+/zlib_wrap.cpp
diff --git a/RealtimeSync/RealtimeSync.cbp b/RealtimeSync/RealtimeSync.cbp
index 4cda30b1..a171b55b 100644
--- a/RealtimeSync/RealtimeSync.cbp
+++ b/RealtimeSync/RealtimeSync.cbp
@@ -116,7 +116,6 @@
<Unit filename="..\ui\folder_history_box.cpp" />
<Unit filename="..\ui\folder_history_box.h" />
<Unit filename="..\wx+\button.cpp" />
- <Unit filename="..\wx+\format_unit.cpp" />
<Unit filename="..\wx+\mouse_move_dlg.cpp" />
<Unit filename="..\wx+\pch.h">
<Option compile="1" />
diff --git a/RealtimeSync/RealtimeSync.ico b/RealtimeSync/RealtimeSync.ico
index d9fc30ac..c42a3029 100644
--- a/RealtimeSync/RealtimeSync.ico
+++ b/RealtimeSync/RealtimeSync.ico
Binary files differ
diff --git a/RealtimeSync/RealtimeSync.vcxproj b/RealtimeSync/RealtimeSync.vcxproj
index e652bedd..6505cc9a 100644
--- a/RealtimeSync/RealtimeSync.vcxproj
+++ b/RealtimeSync/RealtimeSync.vcxproj
@@ -227,7 +227,6 @@
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
</ClCompile>
- <ClCompile Include="..\wx+\format_unit.cpp" />
<ClCompile Include="..\wx+\mouse_move_dlg.cpp" />
<ClCompile Include="..\zen\dir_watcher.cpp" />
<ClCompile Include="..\zen\dst_hack.cpp" />
diff --git a/RealtimeSync/application.cpp b/RealtimeSync/application.cpp
index a69951d4..172a8cac 100644
--- a/RealtimeSync/application.cpp
+++ b/RealtimeSync/application.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "application.h"
@@ -17,7 +17,9 @@
#include "../lib/return_codes.h"
#include "lib/error_log.h"
-#ifdef FFS_LINUX
+#ifdef FFS_WIN
+#include <zen/win_ver.h>
+#elif defined FFS_LINUX
#include <gtk/gtk.h>
#endif
@@ -26,9 +28,40 @@ using namespace zen;
IMPLEMENT_APP(Application);
+#ifdef FFS_WIN
+namespace
+{
+const DWORD mainThreadId = ::GetCurrentThreadId();
+
+void onTerminationRequested()
+{
+ std::wstring msg = ::GetCurrentThreadId() == mainThreadId ?
+ L"Termination requested in main thread!\n\n" :
+ L"Termination requested in worker thread!\n\n";
+ msg += L"Please take a screenshot and file a bug report at: http://sourceforge.net/projects/freefilesync";
+
+ ::MessageBox(0, msg.c_str(), _("An exception occurred!").c_str(), 0);
+ std::abort();
+}
+
+#ifdef _MSC_VER
+void crtInvalidParameterHandler(const wchar_t* expression, const wchar_t* function, const wchar_t* file, unsigned int line, uintptr_t pReserved) { assert(false); }
+#endif
+}
+#endif
+
bool Application::OnInit()
{
+#ifdef FFS_WIN
+ std::set_terminate(onTerminationRequested); //unlike wxWidgets uncaught exception handling, this works for all worker threads
+#ifdef _MSC_VER
+ _set_invalid_parameter_handler(crtInvalidParameterHandler); //see comment in <zen/time.h>
+#endif
+#endif
+
+ assert(!win8OrLater()); //another breadcrumb: test and add new OS entry to "compatibility" in application manifest
+
//do not call wxApp::OnInit() to avoid using default commandline parser
//Note: initialization is done in the FIRST idle event instead of OnInit. Reason: Commandline mode requires the wxApp eventhandler to be established
@@ -56,7 +89,15 @@ void Application::OnStartApplication(wxIdleEvent& event)
#endif
//set program language
- zen::setLanguage(rts::getProgramLanguage());
+ try
+ {
+ setLanguage(rts::getProgramLanguage()); //throw FileError
+ }
+ catch (const FileError& e)
+ {
+ wxMessageBox(e.toString(), _("Error"), wxOK | wxICON_ERROR);
+ //continue!
+ }
//try to set config/batch-filename set by %1 parameter
std::vector<wxString> commandArgs;
@@ -89,12 +130,6 @@ void Application::OnStartApplication(wxIdleEvent& event)
}
-bool Application::OnExceptionInMainLoop()
-{
- throw; //just re-throw exception and avoid display of additional exception messagebox: it will be caught in OnRun()
-}
-
-
int Application::OnRun()
{
diff --git a/RealtimeSync/application.h b/RealtimeSync/application.h
index cb8b42e3..3b9c58e2 100644
--- a/RealtimeSync/application.h
+++ b/RealtimeSync/application.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef REALTIMESYNCAPP_H
@@ -14,7 +14,7 @@ class Application : public wxApp
public:
virtual bool OnInit();
virtual int OnRun();
- virtual bool OnExceptionInMainLoop();
+ virtual bool OnExceptionInMainLoop() { throw; } //just re-throw and avoid display of additional messagebox: it will be caught in OnRun()
private:
void OnStartApplication(wxIdleEvent& event);
diff --git a/RealtimeSync/gui_generated.cpp b/RealtimeSync/gui_generated.cpp
index 5f884012..6dad5266 100644
--- a/RealtimeSync/gui_generated.cpp
+++ b/RealtimeSync/gui_generated.cpp
@@ -106,12 +106,12 @@ MainDlgGenerated::MainDlgGenerated( wxWindow* parent, wxWindowID id, const wxStr
wxBoxSizer* bSizer781;
bSizer781 = new wxBoxSizer( wxHORIZONTAL );
- m_bpButtonAddFolder = new wxBitmapButton( m_panelMainFolder, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 19,21 ), wxBU_AUTODRAW );
+ m_bpButtonAddFolder = new wxBitmapButton( m_panelMainFolder, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 23,23 ), wxBU_AUTODRAW );
m_bpButtonAddFolder->SetToolTip( _("Add folder") );
bSizer781->Add( m_bpButtonAddFolder, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
- m_bpButtonRemoveTopFolder = new wxBitmapButton( m_panelMainFolder, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 19,21 ), wxBU_AUTODRAW );
+ m_bpButtonRemoveTopFolder = new wxBitmapButton( m_panelMainFolder, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 23,23 ), wxBU_AUTODRAW );
m_bpButtonRemoveTopFolder->SetToolTip( _("Remove folder") );
bSizer781->Add( m_bpButtonRemoveTopFolder, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
@@ -168,7 +168,7 @@ MainDlgGenerated::MainDlgGenerated( wxWindow* parent, wxWindowID id, const wxStr
bSizer1->Add( sbSizer3, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
- m_buttonStart = new zen::BitmapButton( m_panelMain, wxID_OK, _("Start"), wxDefaultPosition, wxSize( -1,40 ), 0 );
+ m_buttonStart = new zen::BitmapButton( m_panelMain, wxID_OK, _("Start"), wxDefaultPosition, wxSize( -1,50 ), 0 );
m_buttonStart->SetDefault();
m_buttonStart->SetFont( wxFont( 14, 74, 90, 92, false, wxT("Arial Black") ) );
@@ -222,7 +222,7 @@ FolderGenerated::FolderGenerated( wxWindow* parent, wxWindowID id, const wxPoint
wxBoxSizer* bSizer114;
bSizer114 = new wxBoxSizer( wxHORIZONTAL );
- m_bpButtonRemoveFolder = new wxBitmapButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 19,21 ), wxBU_AUTODRAW );
+ m_bpButtonRemoveFolder = new wxBitmapButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 23,23 ), wxBU_AUTODRAW );
m_bpButtonRemoveFolder->SetToolTip( _("Remove folder") );
bSizer114->Add( m_bpButtonRemoveFolder, 0, wxALIGN_CENTER_VERTICAL, 5 );
diff --git a/RealtimeSync/main_dlg.cpp b/RealtimeSync/main_dlg.cpp
index c5142f3a..bb9ac75b 100644
--- a/RealtimeSync/main_dlg.cpp
+++ b/RealtimeSync/main_dlg.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "main_dlg.h"
@@ -36,9 +36,9 @@ MainDialog::MainDialog(wxDialog* dlg, const wxString& cfgFileName)
m_bpButtonRemoveTopFolder->Hide();
m_panelMainFolder->Layout();
- m_bpButtonAddFolder ->SetBitmapLabel(GlobalResources::getImage(L"addFolderPair"));
- m_bpButtonRemoveTopFolder->SetBitmapLabel(GlobalResources::getImage(L"removeFolderPair"));
- m_buttonStart ->setBitmapFront(GlobalResources::getImage(L"startRed"));
+ m_bpButtonAddFolder ->SetBitmapLabel(GlobalResources::getImage(L"item_add"));
+ m_bpButtonRemoveTopFolder->SetBitmapLabel(GlobalResources::getImage(L"item_delete"));
+ m_buttonStart ->setBitmapFront(GlobalResources::getImage(L"startRts"), 5);
//register key event
Connect(wxEVT_CHAR_HOOK, wxKeyEventHandler(MainDialog::OnKeyPressed), nullptr, this);
@@ -353,7 +353,7 @@ void MainDialog::addFolder(const std::vector<wxString>& newFolders, bool addFron
{
//add new folder pair
DirectoryPanel* newFolder = new DirectoryPanel(m_scrolledWinFolders);
- newFolder->m_bpButtonRemoveFolder->SetBitmapLabel(GlobalResources::getImage(wxT("removeFolderPair")));
+ newFolder->m_bpButtonRemoveFolder->SetBitmapLabel(GlobalResources::getImage(L"item_delete"));
//get size of scrolled window
folderHeight = newFolder->GetSize().GetHeight();
diff --git a/RealtimeSync/main_dlg.h b/RealtimeSync/main_dlg.h
index ebc0838e..3e1b807e 100644
--- a/RealtimeSync/main_dlg.h
+++ b/RealtimeSync/main_dlg.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef REALTIMESYNCMAIN_H
diff --git a/RealtimeSync/makefile b/RealtimeSync/makefile
index 7c59d7b4..761d7722 100644
--- a/RealtimeSync/makefile
+++ b/RealtimeSync/makefile
@@ -42,7 +42,6 @@ CPP_LIST+=../zen/file_io.cpp
CPP_LIST+=../zen/file_traverser.cpp
CPP_LIST+=../zen/zstring.cpp
CPP_LIST+=../wx+/button.cpp
-CPP_LIST+=../wx+/format_unit.cpp
#list of all *.o files
OBJECT_LIST=$(CPP_LIST:%.cpp=../OBJ/RTS_Release_GCC_Make/RTS/%.o)
diff --git a/RealtimeSync/resource.rc b/RealtimeSync/resource.rc
index 8716dabd..ecf568da 100644
--- a/RealtimeSync/resource.rc
+++ b/RealtimeSync/resource.rc
@@ -3,19 +3,26 @@
#include <Winver.h>
#include "../version/version.rc"
-//beginning with VC11 we get linking error "CVTRES : fatal error CVT1100: duplicate resource. type:MANIFEST, name:1, language:0x0409"
-//due to "#define wxMANIFEST_ID 1" in wx.rc. Using another number doesn't integrate the manifest correctly for VC2010 compilers.
-//However tests indicate we do not need this manifest at all:
-//#define wxUSE_NO_MANIFEST 1 //VC11 screws up if not set to an integer, unbelievable
-//we can't #ifdef _MSC_VER: not known by resource compiler!
-//see also: http://blog.m-ri.de/index.php/2010/11/26/combobox-dropdown-hoehe-wird-nicht-mehr-durch-die-ressourcen-definiert/
+#define wxUSE_NO_MANIFEST 1 //lame resource compiler requires us to define an integer here
#include <wx/msw/wx.rc>
+//see comments in FFS resource file on manifests
+
+//MSDN on manifests: http://msdn.microsoft.com/en-us/library/bb756929.aspx
+#define MANIFEST_RESOURCE_ID 1
+#if defined(WX_CPU_AMD64) //check for 64 bit *first*
+MANIFEST_RESOURCE_ID RT_MANIFEST "../amd64.manifest"
+#elif defined(WX_CPU_X86)
+MANIFEST_RESOURCE_ID RT_MANIFEST "../win32.manifest"
+#else
+#error What is going on?
+#endif
+
A_PROGRAM_ICON ICON DISCARDABLE "RealtimeSync.ico"
IDR_VERSION1 VERSIONINFO
-FILEVERSION VER_FREEFILESYNC
-PRODUCTVERSION VER_FREEFILESYNC
+FILEVERSION FREEFILESYNC_VER
+PRODUCTVERSION FREEFILESYNC_VER
FILEOS VOS__WINDOWS32
FILETYPE VFT_APP
BEGIN
@@ -24,10 +31,10 @@ BEGIN
BLOCK "FFFF04B0"
BEGIN
VALUE "FileDescription", "Real-time Command Line Launcher\0"
- VALUE "FileVersion", VER_FREEFILESYNC_STR
+ VALUE "FileVersion", FREEFILESYNC_VER_STR
VALUE "ProductName", "RealtimeSync\0"
- VALUE "ProductVersion", VER_FREEFILESYNC_STR
- VALUE "LegalCopyright", "ZenJu - All Rights Reserved\0"
+ VALUE "ProductVersion", FREEFILESYNC_VER_STR
+ VALUE "LegalCopyright", "Zenju - All Rights Reserved\0"
END
END
BLOCK "VarFileInfo"
diff --git a/RealtimeSync/resources.cpp b/RealtimeSync/resources.cpp
index 787e8968..4e84921d 100644
--- a/RealtimeSync/resources.cpp
+++ b/RealtimeSync/resources.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "resources.h"
diff --git a/RealtimeSync/resources.h b/RealtimeSync/resources.h
index 8578a730..86787f9b 100644
--- a/RealtimeSync/resources.h
+++ b/RealtimeSync/resources.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef RESOURCES_H_INCLUDED_870857342085670826521345
diff --git a/RealtimeSync/tray_menu.cpp b/RealtimeSync/tray_menu.cpp
index e1f2b732..af37d32e 100644
--- a/RealtimeSync/tray_menu.cpp
+++ b/RealtimeSync/tray_menu.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "tray_menu.h"
@@ -9,22 +9,23 @@
#include <iterator>
#include <limits>
#include <set>
+#include <zen/assert_static.h>
+#include <zen/build_info.h>
+#include <wx+/mouse_move_dlg.h>
+#include <wx+/image_tools.h>
+#include <wx+/string_conv.h>
+#include <wx+/shell_execute.h>
#include <wx/msgdlg.h>
#include <wx/taskbar.h>
#include <wx/app.h>
#include <wx/utils.h>
#include <wx/menu.h>
-#include "watcher.h"
#include <wx/utils.h>
#include <wx/icon.h> //Linux needs this
#include <wx/timer.h>
-#include <wx+/mouse_move_dlg.h>
#include "resources.h"
-#include <wx+/string_conv.h>
-#include <zen/assert_static.h>
-#include <zen/build_info.h>
-#include <wx+/shell_execute.h>
#include "gui_generated.h"
+#include "watcher.h"
#include "../lib/resolve_path.h"
using namespace rts;
@@ -153,9 +154,9 @@ public:
{
wxIcon realtimeIcon;
#ifdef FFS_WIN
- realtimeIcon.CopyFromBitmap(GlobalResources::getImage(L"RTS_tray_win.png")); //use a 16x16 bitmap
+ realtimeIcon.CopyFromBitmap(GlobalResources::getImage(L"RTS_tray_win")); //use a 16x16 bitmap
#elif defined FFS_LINUX
- realtimeIcon.CopyFromBitmap(GlobalResources::getImage(L"RTS_tray_linux.png")); //use a 22x22 bitmap for perfect fit
+ realtimeIcon.CopyFromBitmap(GlobalResources::getImage(L"RTS_tray_linux")); //use a 22x22 bitmap for perfect fit
#endif
const wxString postFix = jobName_.empty() ? wxString() : (L"\n\"" + jobName_ + L"\"");
trayMenu->SetIcon(realtimeIcon, _("Monitoring active...") + postFix);
@@ -165,9 +166,9 @@ public:
{
wxIcon realtimeIcon;
#ifdef FFS_WIN
- realtimeIcon.CopyFromBitmap(GlobalResources::getImage(L"RTS_tray_waiting_win.png")); //use a 16x16 bitmap
+ realtimeIcon.CopyFromBitmap(greyScale(GlobalResources::getImage(L"RTS_tray_win"))); //use a 16x16 bitmap
#elif defined FFS_LINUX
- realtimeIcon.CopyFromBitmap(GlobalResources::getImage(L"RTS_tray_waiting_linux.png")); //use a 22x22 bitmap for perfect fit
+ realtimeIcon.CopyFromBitmap(greyScale(GlobalResources::getImage(L"RTS_tray_linux"))); //use a 22x22 bitmap for perfect fit
#endif
const wxString postFix = jobName_.empty() ? wxString() : (L"\n\"" + jobName_ + L"\"");
trayMenu->SetIcon(realtimeIcon, _("Waiting for missing directories...") + postFix);
@@ -246,7 +247,7 @@ public:
#ifdef FFS_WIN
new zen::MouseMoveWindow(*this); //allow moving main dialog by clicking (nearly) anywhere...; ownership passed to "this"
#endif
- m_bitmap10->SetBitmap(GlobalResources::getImage(L"error"));
+ m_bitmap10->SetBitmap(GlobalResources::getImage(L"msg_error"));
m_textCtrl8->SetValue(messageText);
m_buttonRetry->SetFocus();
@@ -383,7 +384,7 @@ rts::AbortReason rts::startDirectoryMonitor(const xmlAccess::XmlRealConfig& conf
lastFileChanged.clear(); //make sure old name is not shown again after a directory reappears
//execute command
- auto cmdLineExp = utfCvrtTo<wxString>(expandMacros(utfCvrtTo<Zstring>(cmdLine)));
+ auto cmdLineExp = utfCvrtTo<wxString>(expandMacros(utfCvrtTo<Zstring>(cmdLine)));
zen::shellExecute(cmdLineExp, zen::EXEC_TYPE_SYNC);
callback.clearSchedule();
}
diff --git a/RealtimeSync/tray_menu.h b/RealtimeSync/tray_menu.h
index 7ebe4f40..006dae82 100644
--- a/RealtimeSync/tray_menu.h
+++ b/RealtimeSync/tray_menu.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef TRAYMENU_H_INCLUDED
diff --git a/RealtimeSync/watcher.cpp b/RealtimeSync/watcher.cpp
index c2885b5d..e66b4723 100644
--- a/RealtimeSync/watcher.cpp
+++ b/RealtimeSync/watcher.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "watcher.h"
diff --git a/RealtimeSync/watcher.h b/RealtimeSync/watcher.h
index 2078bb0f..014101da 100644
--- a/RealtimeSync/watcher.h
+++ b/RealtimeSync/watcher.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef WATCHER_H_INCLUDED
diff --git a/RealtimeSync/xml_ffs.cpp b/RealtimeSync/xml_ffs.cpp
index acce554c..11151a09 100644
--- a/RealtimeSync/xml_ffs.cpp
+++ b/RealtimeSync/xml_ffs.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "xml_ffs.h"
diff --git a/RealtimeSync/xml_ffs.h b/RealtimeSync/xml_ffs.h
index 76e4348f..90c1c6ca 100644
--- a/RealtimeSync/xml_ffs.h
+++ b/RealtimeSync/xml_ffs.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef XMLFREEFILESYNC_H_INCLUDED
diff --git a/RealtimeSync/xml_proc.cpp b/RealtimeSync/xml_proc.cpp
index ac6c0eb9..a4cd715c 100644
--- a/RealtimeSync/xml_proc.cpp
+++ b/RealtimeSync/xml_proc.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "xml_proc.h"
diff --git a/RealtimeSync/xml_proc.h b/RealtimeSync/xml_proc.h
index 33b1694c..ab57e816 100644
--- a/RealtimeSync/xml_proc.h
+++ b/RealtimeSync/xml_proc.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef XMLPROCESSING_H_INCLUDED
diff --git a/algorithm.cpp b/algorithm.cpp
index f1ff5f2a..3bfc14e2 100644
--- a/algorithm.cpp
+++ b/algorithm.cpp
@@ -1,23 +1,22 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "algorithm.h"
#include <set>
-//#include <iterator>
#include <stdexcept>
#include <tuple>
-#include "lib/resources.h"
#include <zen/file_handling.h>
#include <zen/recycler.h>
-#include <wx/msgdlg.h>
+#include <zen/stl_tools.h>
+#include <zen/scope_guard.h>
+//#include <wx/msgdlg.h>
+#include "lib/resources.h"
#include "lib/norm_filter.h"
#include "lib/db_file.h"
-#include <zen/scope_guard.h>
#include "lib/cmp_filetime.h"
-#include <zen/stl_tools.h>
#include "lib/norm_filter.h"
using namespace zen;
@@ -682,7 +681,7 @@ void zen::redetermineSyncDirection(const MainConfiguration& mainCfg, FolderCompa
std::vector<DirectionConfig> directCfgs = extractDirectionCfg(mainCfg);
if (folderCmp.size() != directCfgs.size())
- throw std::logic_error("Programming Error: Contract violation!");
+ throw std::logic_error("Programming Error: Contract violation! " + std::string(__FILE__) + ":" + numberTo<std::string>(__LINE__));
for (auto iter = folderCmp.begin(); iter != folderCmp.end(); ++iter)
{
@@ -1015,7 +1014,7 @@ void zen::applyFiltering(FolderComparison& folderCmp, const MainConfiguration& m
if (folderCmp.empty())
return;
else if (folderCmp.size() != mainCfg.additionalPairs.size() + 1)
- throw std::logic_error("Programming Error: Contract violation!");
+ throw std::logic_error("Programming Error: Contract violation! " + std::string(__FILE__) + ":" + numberTo<std::string>(__LINE__));
//merge first and additional pairs
std::vector<FolderPairEnh> allPairs;
@@ -1105,13 +1104,12 @@ void zen::applyTimeSpanFilter(FolderComparison& folderCmp, const Int64& timeFrom
//############################################################################################################
-std::pair<wxString, int> zen::deleteFromGridAndHDPreview(const std::vector<FileSystemObject*>& selectionLeft,
- const std::vector<FileSystemObject*>& selectionRight,
- bool deleteOnBothSides)
+std::pair<Zstring, int> zen::deleteFromGridAndHDPreview(const std::vector<FileSystemObject*>& selectionLeft,
+ const std::vector<FileSystemObject*>& selectionRight,
+ bool deleteOnBothSides)
{
- typedef Zbase<wchar_t> zxString; //fast replacement for wxString modelling exponential growth
-
- zxString filesToDelete;
+ //don't use wxString here, it's linear allocation strategy would bring perf down to a crawl; Zstring: exponential growth!
+ Zstring fileList;
int totalDelCount = 0;
if (deleteOnBothSides)
@@ -1129,17 +1127,17 @@ std::pair<wxString, int> zen::deleteFromGridAndHDPreview(const std::vector<FileS
{
if (!fsObj->isEmpty<LEFT_SIDE>())
{
- filesToDelete += utfCvrtTo<zxString>(fsObj->getFullName<LEFT_SIDE>()) + L'\n';
+ fileList += fsObj->getFullName<LEFT_SIDE>() + Zstr('\n');
++totalDelCount;
}
if (!fsObj->isEmpty<RIGHT_SIDE>())
{
- filesToDelete += utfCvrtTo<zxString>(fsObj->getFullName<RIGHT_SIDE>()) + L'\n';
+ fileList += fsObj->getFullName<RIGHT_SIDE>() + Zstr('\n');
++totalDelCount;
}
- filesToDelete += L'\n';
+ fileList += Zstr('\n');
});
}
else //delete selected files only
@@ -1149,7 +1147,7 @@ std::pair<wxString, int> zen::deleteFromGridAndHDPreview(const std::vector<FileS
{
if (!fsObj->isEmpty<LEFT_SIDE>())
{
- filesToDelete += utfCvrtTo<zxString>(fsObj->getFullName<LEFT_SIDE>()) + L'\n';
+ fileList += fsObj->getFullName<LEFT_SIDE>() + Zstr('\n');
++totalDelCount;
}
});
@@ -1159,13 +1157,13 @@ std::pair<wxString, int> zen::deleteFromGridAndHDPreview(const std::vector<FileS
{
if (!fsObj->isEmpty<RIGHT_SIDE>())
{
- filesToDelete += utfCvrtTo<zxString>(fsObj->getFullName<RIGHT_SIDE>()) + L'\n';
+ fileList += fsObj->getFullName<RIGHT_SIDE>() + Zstr('\n');
++totalDelCount;
}
});
}
- return std::make_pair(copyStringTo<wxString>(filesToDelete), totalDelCount);
+ return std::make_pair(fileList, totalDelCount);
}
@@ -1318,7 +1316,7 @@ void zen::deleteFromGridAndHD(const std::vector<FileSystemObject*>& rowsToDelete
if (folderCmp.empty())
return;
else if (folderCmp.size() != directCfgs.size())
- throw std::logic_error("Programming Error: Contract violation!");
+ throw std::logic_error("Programming Error: Contract violation! " + std::string(__FILE__) + ":" + numberTo<std::string>(__LINE__));
//build up mapping from base directory to corresponding direction config
hash_map<const BaseDirMapping*, DirectionConfig> baseDirCfgs;
diff --git a/algorithm.h b/algorithm.h
index c4c1d135..3fcd9436 100644
--- a/algorithm.h
+++ b/algorithm.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef ALGORITHM_H_INCLUDED
@@ -36,7 +36,7 @@ void setActiveStatus(bool newStatus, FileSystemObject& fsObj); //activate or
//manual deletion of files on main grid
-std::pair<wxString, int> deleteFromGridAndHDPreview( //returns wxString with elements to be deleted and total count of selected(!) objects, NOT total files/dirs!
+std::pair<Zstring, int> deleteFromGridAndHDPreview( //returns wxString with elements to be deleted and total count of selected(!) objects, NOT total files/dirs!
const std::vector<FileSystemObject*>& selectionLeft, //all pointers need to be bound!
const std::vector<FileSystemObject*>& selectionRight, //
bool deleteOnBothSides);
diff --git a/comparison.cpp b/comparison.cpp
index 76aad384..bae14c41 100644
--- a/comparison.cpp
+++ b/comparison.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "comparison.h"
@@ -10,7 +10,7 @@
#include <zen/perf.h>
#include <zen/scope_guard.h>
#include <zen/process_priority.h>
-#include <wx+/format_unit.h>
+#include <zen/format_unit.h>
#include "algorithm.h"
#include "lib/parallel_scan.h"
#include "lib/resolve_path.h"
@@ -365,7 +365,7 @@ void zen::compare(size_t fileTimeTolerance,
callback.reportStatus(_("Preparing synchronization..."));
callback.forceUiRefresh();
zen::redetermineSyncDirection(fpCfg.directionCfg, *j,
- [&](const std::wstring& warning) { callback.reportWarning(warning, warnings.warningSyncDatabase); });
+ [&](const std::wstring& warning) { callback.reportWarning(warning, warnings.warningDatabaseError); });
}
//only if everything was processed correctly output is written to!
diff --git a/comparison.h b/comparison.h
index 18408e95..40f7cedb 100644
--- a/comparison.h
+++ b/comparison.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef COMPARISON_H_INCLUDED
diff --git a/file_hierarchy.cpp b/file_hierarchy.cpp
index 491f9c2e..bf557655 100644
--- a/file_hierarchy.cpp
+++ b/file_hierarchy.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "file_hierarchy.h"
diff --git a/file_hierarchy.h b/file_hierarchy.h
index 12888727..4139a53a 100644
--- a/file_hierarchy.h
+++ b/file_hierarchy.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef FILEHIERARCHY_H_INCLUDED
diff --git a/lib/Batch.ico b/lib/Batch.ico
index 7b33067a..14e2bb10 100644
--- a/lib/Batch.ico
+++ b/lib/Batch.ico
Binary files differ
diff --git a/lib/FreeFileSync.ico b/lib/FreeFileSync.ico
index b87789a7..02925b10 100644
--- a/lib/FreeFileSync.ico
+++ b/lib/FreeFileSync.ico
Binary files differ
diff --git a/lib/ShadowCopy/LockFile.cpp b/lib/ShadowCopy/LockFile.cpp
index 701b84ec..a09e7f94 100644
--- a/lib/ShadowCopy/LockFile.cpp
+++ b/lib/ShadowCopy/LockFile.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/lib/ShadowCopy/dll_main.cpp b/lib/ShadowCopy/dll_main.cpp
index 95d14910..4665154a 100644
--- a/lib/ShadowCopy/dll_main.cpp
+++ b/lib/ShadowCopy/dll_main.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/lib/ShadowCopy/shadow.cpp b/lib/ShadowCopy/shadow.cpp
index 3bc2df87..93026039 100644
--- a/lib/ShadowCopy/shadow.cpp
+++ b/lib/ShadowCopy/shadow.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "shadow.h"
@@ -152,7 +152,7 @@ shadow::ShadowHandle shadow::createShadowCopy(const wchar_t* volumeName)
try
{
ShadowData result = ::createShadowCopy(volumeName); //shadow handle owned by caller! throw ComError
- return new ShadowData(result);
+ return new ShadowData(result); //std::bad_alloc?
}
catch (const zen::ComError& e)
{
diff --git a/lib/ShadowCopy/shadow.h b/lib/ShadowCopy/shadow.h
index 8f35c728..e68b2655 100644
--- a/lib/ShadowCopy/shadow.h
+++ b/lib/ShadowCopy/shadow.h
@@ -1,16 +1,16 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
-#ifndef SHADOWCOPY_H
-#define SHADOWCOPY_H
+#ifndef SHADOWCOPY_H_14837413434
+#define SHADOWCOPY_H_14837413434
#ifdef SHADOWDLL_EXPORTS
-#define SHADOWDLL_API extern "C" __declspec(dllexport)
+#define DLL_FUNCTION_DECLARATION extern "C" __declspec(dllexport)
#else
-#define SHADOWDLL_API extern "C" __declspec(dllimport)
+#define DLL_FUNCTION_DECLARATION extern "C" __declspec(dllimport)
#endif
#include <zen/build_info.h>
@@ -30,18 +30,18 @@ struct ShadowData;
typedef ShadowData* ShadowHandle;
//volumeName *must* end with "\"
-SHADOWDLL_API
+DLL_FUNCTION_DECLARATION
ShadowHandle createShadowCopy(const wchar_t* volumeName); //returns nullptr on failure!
//release the backupHandle after shadow copy is not needed anymore!
-SHADOWDLL_API
+DLL_FUNCTION_DECLARATION
void releaseShadowCopy(ShadowHandle handle);
-SHADOWDLL_API
+DLL_FUNCTION_DECLARATION
const wchar_t* getShadowVolume(ShadowHandle handle); //never fails, returns shadowVolName, never ending with "\"
//get last error message if any of the functions above fail
-SHADOWDLL_API
+DLL_FUNCTION_DECLARATION
const wchar_t* getLastError(); //no nullptr check required!
//##########################################################################################
@@ -89,4 +89,6 @@ const wchar_t* getDllName()
}
}
-#endif //SHADOWCOPY_H
+#undef DLL_FUNCTION_DECLARATION
+
+#endif //SHADOWCOPY_H_14837413434
diff --git a/lib/SyncDB.ico b/lib/SyncDB.ico
index eee91c14..6fc5d264 100644
--- a/lib/SyncDB.ico
+++ b/lib/SyncDB.ico
Binary files differ
diff --git a/lib/Thumbnail/dll_main.cpp b/lib/Thumbnail/dll_main.cpp
index 95d14910..4665154a 100644
--- a/lib/Thumbnail/dll_main.cpp
+++ b/lib/Thumbnail/dll_main.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/lib/Thumbnail/thumbnail.cpp b/lib/Thumbnail/thumbnail.cpp
index 50c4f2a8..0c7162b9 100644
--- a/lib/Thumbnail/thumbnail.cpp
+++ b/lib/Thumbnail/thumbnail.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "thumbnail.h"
diff --git a/lib/Thumbnail/thumbnail.h b/lib/Thumbnail/thumbnail.h
index 9328b4f0..b2be2239 100644
--- a/lib/Thumbnail/thumbnail.h
+++ b/lib/Thumbnail/thumbnail.h
@@ -1,11 +1,11 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
-#ifndef TASKBAR_SEVEN_DLL_H
-#define TASKBAR_SEVEN_DLL_H
+#ifndef THUMBNAIL_DLL_HEADER_487108471324
+#define THUMBNAIL_DLL_HEADER_487108471324
#ifdef THUMBNAIL_DLL_EXPORTS
#define DLL_FUNCTION_DECLARATION extern "C" __declspec(dllexport)
@@ -65,4 +65,6 @@ const char funName_getIconByIndex[] = "getIconByIndex";
inline const wchar_t* getDllName() { return zen::is64BitBuild ? L"Thumbnail_x64.dll" : L"Thumbnail_Win32.dll"; }
}
-#endif //TASKBAR_SEVEN_DLL_H
+#undef DLL_FUNCTION_DECLARATION
+
+#endif //THUMBNAIL_DLL_HEADER_487108471324
diff --git a/lib/binary.cpp b/lib/binary.cpp
index ec22c60f..b9e3028d 100644
--- a/lib/binary.cpp
+++ b/lib/binary.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "binary.h"
@@ -14,6 +14,8 @@
using namespace zen;
+namespace
+{
inline
void setMinSize(std::vector<char>& buffer, size_t minSize)
{
@@ -21,9 +23,6 @@ void setMinSize(std::vector<char>& buffer, size_t minSize)
buffer.resize(minSize);
}
-
-namespace
-{
class BufferSize
{
public:
diff --git a/lib/binary.h b/lib/binary.h
index 2c985de5..83409e19 100644
--- a/lib/binary.h
+++ b/lib/binary.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef BINARY_H_INCLUDED
diff --git a/lib/db_file.cpp b/lib/db_file.cpp
index 3c61137b..8821fc66 100644
--- a/lib/db_file.cpp
+++ b/lib/db_file.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "db_file.h"
@@ -414,7 +414,7 @@ class UpdateLastSynchronousState
/*
1. filter by file name does *not* create a new hierarchy, but merely gives a different *view* on the existing file hierarchy
=> only update database entries matching this view!
- 2. Symlink handling *does* create a new (asymmetric) hierarchies during comparison
+ 2. Symlink handling *does* create a new (asymmetric) hierarchy during comparison
=> update all database entries!
*/
public:
@@ -741,10 +741,9 @@ void zen::saveLastSynchronousState(const BaseDirMapping& baseMapping) //throw Fi
if (streamIterRightOld != streamListRight.end())
streamListRight.erase(streamIterRightOld);
- //create/update DirInfo-streams
+ //create new session data
const std::string sessionID = zen::generateGUID();
- //fill in new
streamListLeft [sessionID] = std::move(updatedStreamLeft);
streamListRight[sessionID] = std::move(updatedStreamRight);
@@ -762,6 +761,6 @@ void zen::saveLastSynchronousState(const BaseDirMapping& baseMapping) //throw Fi
renameFile(dbNameLeftTmp, dbNameLeft); //
renameFile(dbNameRightTmp, dbNameRight); //
- guardTempFileLeft. dismiss(); //no need to delete temp file anymore
+ guardTempFileLeft. dismiss(); //no need to delete temp files anymore
guardTempFileRight.dismiss(); //
}
diff --git a/lib/db_file.h b/lib/db_file.h
index 469cd3fa..c080081c 100644
--- a/lib/db_file.h
+++ b/lib/db_file.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef DBFILE_H_INCLUDED
diff --git a/lib/dir_exist_async.h b/lib/dir_exist_async.h
index 7e18d210..a02facad 100644
--- a/lib/dir_exist_async.h
+++ b/lib/dir_exist_async.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef DIR_EXIST_HEADER_08173281673432158067342132467183267
diff --git a/lib/dir_lock.cpp b/lib/dir_lock.cpp
index 469af262..da119f88 100644
--- a/lib/dir_lock.cpp
+++ b/lib/dir_lock.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "dir_lock.h"
#include <utility>
diff --git a/lib/dir_lock.h b/lib/dir_lock.h
index b1fc1a06..85b9058e 100644
--- a/lib/dir_lock.h
+++ b/lib/dir_lock.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef DIR_LOCK_H_INCLUDED
#define DIR_LOCK_H_INCLUDED
diff --git a/lib/error_log.h b/lib/error_log.h
index 2ccb4d84..2971f746 100644
--- a/lib/error_log.h
+++ b/lib/error_log.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef ERROR_LOG_89734181783491324134
diff --git a/lib/ffs_paths.h b/lib/ffs_paths.h
index 1a67af5c..2aef2322 100644
--- a/lib/ffs_paths.h
+++ b/lib/ffs_paths.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef STANDARDPATHS_H_INCLUDED
diff --git a/lib/generate_logfile.h b/lib/generate_logfile.h
index d1537311..651b93cb 100644
--- a/lib/generate_logfile.h
+++ b/lib/generate_logfile.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef GEN_LOGFILE_H_93172643216748973216458732165415
@@ -10,7 +10,7 @@
#include <zen/error_log.h>
#include <zen/file_io.h>
#include <zen/serialize.h>
-#include <wx+/format_unit.h>
+#include <zen/format_unit.h>
#include "ffs_paths.h"
diff --git a/lib/hard_filter.cpp b/lib/hard_filter.cpp
index 8fe0f7f4..5664da83 100644
--- a/lib/hard_filter.cpp
+++ b/lib/hard_filter.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "hard_filter.h"
diff --git a/lib/hard_filter.h b/lib/hard_filter.h
index 57132e7f..e47047a0 100644
--- a/lib/hard_filter.h
+++ b/lib/hard_filter.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef FFS_FILTER_H_INCLUDED
diff --git a/lib/help_provider.h b/lib/help_provider.h
index d35e04c2..15ae4f60 100644
--- a/lib/help_provider.h
+++ b/lib/help_provider.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef HELPPROVIDER_H_INCLUDED
diff --git a/lib/icon_buffer.cpp b/lib/icon_buffer.cpp
index dd449229..60f6cbe4 100644
--- a/lib/icon_buffer.cpp
+++ b/lib/icon_buffer.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "icon_buffer.h"
@@ -379,7 +379,7 @@ IconHolder getGenericDirectoryIcon(IconBuffer::IconSize sz)
//---------------------- Shared Data -------------------------
-struct WorkLoad
+class WorkLoad
{
public:
Zstring extractNextFile() //context of worker thread, blocking
diff --git a/lib/icon_buffer.h b/lib/icon_buffer.h
index 7bbf3432..75bf54c8 100644
--- a/lib/icon_buffer.h
+++ b/lib/icon_buffer.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef ICONBUFFER_H_INCLUDED
diff --git a/lib/localization.cpp b/lib/localization.cpp
index 83bc60d2..64c8b0f3 100644
--- a/lib/localization.cpp
+++ b/lib/localization.cpp
@@ -1,33 +1,30 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "localization.h"
-#include <fstream>
+//#include <fstream>
#include <map>
#include <list>
#include <iterator>
-//#include <wx/ffile.h>
-#include <wx/intl.h>
-#include <wx/msgdlg.h>
-#include "parse_plural.h"
-#include "parse_lng.h"
-#include <wx+/format_unit.h>
#include <zen/string_tools.h>
#include <zen/file_traverser.h>
-#include "ffs_paths.h"
#include <zenxml/io.h>
#include <zen/i18n.h>
+#include <zen/format_unit.h>
+#include <wx/intl.h>
+//#include <wx/msgdlg.h>
+#include "parse_plural.h"
+#include "parse_lng.h"
+#include "ffs_paths.h"
using namespace zen;
namespace
{
-//global objects
-
class FFSLocale : public TranslationHandler
{
public:
@@ -68,7 +65,6 @@ private:
};
-
FFSLocale::FFSLocale(const wxString& filename, wxLanguage languageId) : langId_(languageId) //throw lngfile::ParsingError, PluralForm::ParsingError
{
std::string inputStream;
@@ -109,7 +105,7 @@ FFSLocale::FFSLocale(const wxString& filename, wxLanguage languageId) : langId_(
transMappingPl.insert(std::make_pair(std::make_pair(singular, plural), plFormsWide));
}
- pluralParser.reset(new PluralForm(copyStringTo<Wstring>(header.pluralDefinition))); //throw PluralForm::ParsingError
+ pluralParser.reset(new PluralForm(header.pluralDefinition)); //throw PluralForm::ParsingError
}
}
@@ -165,7 +161,7 @@ ExistingTranslations::ExistingTranslations()
newEntry.languageID = wxLANGUAGE_ENGLISH_US;
newEntry.languageName = L"English (US)";
newEntry.languageFile = L"";
- newEntry.translatorName = L"ZenJu";
+ newEntry.translatorName = L"Zenju";
newEntry.languageFlag = L"usa.png";
locMapping.push_back(newEntry);
}
@@ -339,33 +335,45 @@ wxLanguage mapLanguageDialect(wxLanguage language)
return language;
}
}
-}
-class CustomLocale
+//global wxWidgets localization: sets up C localization runtime as well!
+class wxWidgetsLocale
{
public:
- CustomLocale(int selectedLng)
+ static void init(wxLanguage lng)
{
+ locale.reset(); //avoid global locale lifetime overlap! wxWidgets cannot handle this and will crash!
+ locale.reset(new wxLocale);
+
const wxLanguageInfo* sysLngInfo = wxLocale::GetLanguageInfo(wxLocale::GetSystemLanguage());
- const wxLanguageInfo* selLngInfo = wxLocale::GetLanguageInfo(selectedLng);
+ const wxLanguageInfo* selLngInfo = wxLocale::GetLanguageInfo(lng);
const bool sysLangIsRTL = sysLngInfo ? sysLngInfo->LayoutDirection == wxLayout_RightToLeft : false;
const bool selectedLangIsRTL = selLngInfo ? selLngInfo->LayoutDirection == wxLayout_RightToLeft : false;
if (sysLangIsRTL == selectedLangIsRTL)
- loc.Init(wxLANGUAGE_DEFAULT); //use sys-lang to preserve sub-language specific rules (e.g. german swiss number punctation)
+ locale->Init(wxLANGUAGE_DEFAULT); //use sys-lang to preserve sub-language specific rules (e.g. german swiss number punctation)
else
- loc.Init(selectedLng);
+ locale->Init(lng); //have to use the supplied language to enable RTL layout different than user settings
+ locLng = lng;
}
+
+ static wxLanguage getLanguage() { return locLng; }
+
private:
- wxLocale loc; //required for RTL language support (and nothing else)
+ static std::unique_ptr<wxLocale> locale;
+ static wxLanguage locLng;
};
+std::unique_ptr<wxLocale> wxWidgetsLocale::locale;
+wxLanguage wxWidgetsLocale::locLng = wxLANGUAGE_UNKNOWN;
+}
-void zen::setLanguage(int language)
+void zen::setLanguage(int language) //throw FileError
{
- if (language == getLanguage()) return; //support polling
+ if (language == getLanguage() && wxWidgetsLocale::getLanguage() == language)
+ return; //support polling
//(try to) retrieve language file
wxString languageFile;
@@ -377,31 +385,28 @@ void zen::setLanguage(int language)
break;
}
- //handle RTL swapping: we need wxWidgets to do this
- static std::unique_ptr<CustomLocale> dummy;
- dummy.reset(); //avoid global locale lifetime overlap! wxWidgets cannot handle this and will crash!
- dummy.reset(new CustomLocale(languageFile.empty() ? wxLANGUAGE_ENGLISH : language));
-
- //reset to english language; in case of error show error message just once
- zen::setTranslator();
-
//load language file into buffer
- if (!languageFile.empty()) //if languageFile is empty texts will be english per default
+ if (languageFile.empty()) //if languageFile is empty, texts will be english by default
+ zen::setTranslator();
+ else
try
{
zen::setTranslator(new FFSLocale(languageFile, static_cast<wxLanguage>(language))); //throw lngfile::ParsingError, PluralForm::ParsingError
}
catch (lngfile::ParsingError& e)
{
- wxMessageBox(replaceCpy(replaceCpy(replaceCpy(_("Error parsing file %x, row %y, column %z."),
- L"%x", fmtFileName(toZ(languageFile))),
- L"%y", numberTo<std::wstring>(e.row)),
- L"%z", numberTo<std::wstring>(e.col)), _("Error"), wxOK | wxICON_ERROR);
+ throw FileError(replaceCpy(replaceCpy(replaceCpy(_("Error parsing file %x, row %y, column %z."),
+ L"%x", fmtFileName(toZ(languageFile))),
+ L"%y", numberTo<std::wstring>(e.row)),
+ L"%z", numberTo<std::wstring>(e.col)));
}
catch (PluralForm::ParsingError&)
{
- wxMessageBox(L"Invalid Plural Form", _("Error"), wxOK | wxICON_ERROR);
+ throw FileError(L"Invalid Plural Form");
}
+
+ //handle RTL swapping: we need wxWidgets to do this
+ wxWidgetsLocale::init(languageFile.empty() ? wxLANGUAGE_ENGLISH : static_cast<wxLanguage>(language));
}
diff --git a/lib/localization.h b/lib/localization.h
index a4430467..125be0fd 100644
--- a/lib/localization.h
+++ b/lib/localization.h
@@ -1,14 +1,15 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef MISC_H_INCLUDED
#define MISC_H_INCLUDED
-#include <wx/string.h>
#include <vector>
+#include <zen/file_error.h>
+#include <wx/string.h>
namespace zen
{
@@ -33,7 +34,7 @@ private:
std::vector<Entry> locMapping;
};
-void setLanguage(int language);
+void setLanguage(int language); //throw FileError
int getLanguage();
int retrieveSystemLanguage();
}
diff --git a/lib/norm_filter.h b/lib/norm_filter.h
index aeefa8a1..2d878da2 100644
--- a/lib/norm_filter.h
+++ b/lib/norm_filter.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef NORM_FILTER_H_INCLUDED
diff --git a/lib/parallel_scan.cpp b/lib/parallel_scan.cpp
index 6e7a6368..e8b13003 100644
--- a/lib/parallel_scan.cpp
+++ b/lib/parallel_scan.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "parallel_scan.h"
@@ -17,10 +17,6 @@
using namespace zen;
-#ifndef BOOST_HAS_THREADS
-#error just some paranoia check...
-#endif
-
namespace
{
diff --git a/lib/parallel_scan.h b/lib/parallel_scan.h
index 41712a55..f04d51b4 100644
--- a/lib/parallel_scan.h
+++ b/lib/parallel_scan.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef PARALLEL_SCAN_H_INCLUDED
diff --git a/lib/parse_lng.h b/lib/parse_lng.h
index 3cbadf65..5eb135a3 100644
--- a/lib/parse_lng.h
+++ b/lib/parse_lng.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef PARSE_LNG_HEADER_INCLUDED
@@ -33,7 +33,7 @@ typedef std::map <SingularPluralPair, PluralForms> TranslationPluralMap; //(sing
struct TransHeader
{
std::string languageName; //display name: "English (UK)"
- std::string translatorName; //"ZenJu"
+ std::string translatorName; //"Zenju"
std::string localeName; //ISO 639 language code + ISO 3166 country code, e.g. "en_GB", or "en_US"
std::string flagFile; //"england.png"
int pluralCount; //2
diff --git a/lib/parse_plural.h b/lib/parse_plural.h
index d3473821..2b78de89 100644
--- a/lib/parse_plural.h
+++ b/lib/parse_plural.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef PARSE_PLURAL_H_INCLUDED
@@ -12,7 +12,6 @@
#include <functional>
#include <zen/string_base.h>
-
//http://www.gnu.org/software/hello/manual/gettext/Plural-forms.html
//http://translate.sourceforge.net/wiki/l10n/pluralforms
/*
@@ -50,9 +49,9 @@ multiplicative-expression:
multiplicative-expression % pm-expression
pm-expression:
- N
- Number
- ( Expression )
+ variable-number-n-expression
+ constant-number-expression
+ ( expression )
*/
@@ -71,58 +70,55 @@ struct Expr : public Expression
template <class StlOp>
struct BinaryExp : public Expr<typename StlOp::result_type>
{
- typedef const Expr<typename StlOp::first_argument_type> SourceExp;
+ typedef const Expr<typename StlOp::first_argument_type > ExpLhs;
+ typedef const Expr<typename StlOp::second_argument_type> ExpRhs;
- BinaryExp(const SourceExp& lhs, const SourceExp& rhs, StlOp biop) : lhs_(lhs), rhs_(rhs), biop_(biop) {}
+ BinaryExp(const ExpLhs& lhs, const ExpRhs& rhs, StlOp biop) : lhs_(lhs), rhs_(rhs), biop_(biop) {}
virtual typename StlOp::result_type eval() const { return biop_(lhs_.eval(), rhs_.eval()); }
- const SourceExp& lhs_;
- const SourceExp& rhs_;
+ const ExpLhs& lhs_;
+ const ExpRhs& rhs_;
StlOp biop_;
};
-template <class StlOp>
-inline
+template <class StlOp> inline
BinaryExp<StlOp> makeBiExp(const Expression& lhs, const Expression& rhs, StlOp biop) //throw std::bad_cast
{
- return BinaryExp<StlOp>(dynamic_cast<const Expr<typename StlOp::first_argument_type >&>(lhs),
- dynamic_cast<const Expr<typename StlOp::second_argument_type>&>(rhs), biop);
+ return BinaryExp<StlOp>(dynamic_cast<const Expr<typename StlOp::first_argument_type >&>(lhs), //throw std::bad_cast
+ dynamic_cast<const Expr<typename StlOp::second_argument_type>&>(rhs), biop); //
}
-template <class Out>
-struct TernaryExp : public Out
+template <class T>
+struct TernaryExp : public Expr<T>
{
- TernaryExp(const Expr<bool>& ifExp, const Out& thenExp, const Out& elseExp) : ifExp_(ifExp), thenExp_(thenExp), elseExp_(elseExp) {}
- virtual typename Out::ValueType eval() const { return ifExp_.eval() ? thenExp_.eval() : elseExp_.eval(); }
+ TernaryExp(const Expr<bool>& ifExp, const Expr<T>& thenExp, const Expr<T>& elseExp) : ifExp_(ifExp), thenExp_(thenExp), elseExp_(elseExp) {}
+ virtual typename Expr<T>::ValueType eval() const { return ifExp_.eval() ? thenExp_.eval() : elseExp_.eval(); }
const Expr<bool>& ifExp_;
- const Out& thenExp_;
- const Out& elseExp_;
+ const Expr<T>& thenExp_;
+ const Expr<T>& elseExp_;
};
-struct LiteralNumberEx : public Expr<int>
+struct ConstNumberExp : public Expr<int>
{
- LiteralNumberEx(int n) : n_(n) {}
+ ConstNumberExp(int n) : n_(n) {}
virtual int eval() const { return n_; }
int n_;
};
-struct NumberN : public Expr<int>
+struct VariableNumberNExp : public Expr<int>
{
- NumberN(int& n) : n_(n) {}
+ VariableNumberNExp(int& n) : n_(n) {}
virtual int eval() const { return n_; }
int& n_;
};
-typedef zen::Zbase<char> Wstring;
-
-
class PluralForm
{
public:
struct ParsingError {};
//.po format,e.g.: (n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)
- PluralForm(const Wstring& phrase) : n_(0)
+ PluralForm(const std::string& phrase) : n_(0)
{
Parser(phrase, //in
expr, n_, dump); //out
@@ -148,8 +144,8 @@ private:
TK_GREATER,
TK_GREATER_EQUAL,
TK_MODULUS,
- TK_N,
- TK_NUMBER,
+ TK_VARIABLE_N,
+ TK_CONST_NUMBER,
TK_BRACKET_LEFT,
TK_BRACKET_RIGHT,
TK_END
@@ -158,13 +154,13 @@ private:
Token(Type t) : type(t), number(0) {}
Type type;
- int number; //if type == TK_NUMBER
+ int number; //if type == TK_CONST_NUMBER
};
class Scanner
{
public:
- Scanner(const Wstring& phrase) : stream(phrase), pos(stream.begin())
+ Scanner(const std::string& phrase) : stream(phrase), pos(stream.begin())
{
tokens.push_back(std::make_pair("?" , Token::TK_TERNARY_QUEST));
tokens.push_back(std::make_pair(":" , Token::TK_TERNARY_COLON));
@@ -177,8 +173,8 @@ private:
tokens.push_back(std::make_pair(">=", Token::TK_GREATER_EQUAL));
tokens.push_back(std::make_pair(">" , Token::TK_GREATER ));
tokens.push_back(std::make_pair("%" , Token::TK_MODULUS ));
- tokens.push_back(std::make_pair("n" , Token::TK_N ));
- tokens.push_back(std::make_pair("N" , Token::TK_N ));
+ tokens.push_back(std::make_pair("n" , Token::TK_VARIABLE_N ));
+ tokens.push_back(std::make_pair("N" , Token::TK_VARIABLE_N ));
tokens.push_back(std::make_pair("(" , Token::TK_BRACKET_LEFT ));
tokens.push_back(std::make_pair(")" , Token::TK_BRACKET_RIGHT));
}
@@ -188,21 +184,22 @@ private:
//skip whitespace
pos = std::find_if(pos, stream.end(), [](char c) { return !zen::isWhiteSpace(c); });
- if (pos == stream.end()) return Token(Token::TK_END);
+ if (pos == stream.end())
+ return Token::TK_END;
- for (TokenList::const_iterator i = tokens.begin(); i != tokens.end(); ++i)
- if (startsWith(i->first))
+ for (auto iter = tokens.begin(); iter != tokens.end(); ++iter)
+ if (startsWith(iter->first))
{
- pos += i->first.size();
- return Token(i->second);
+ pos += iter->first.size();
+ return Token(iter->second);
}
- Wstring::const_iterator digitEnd = std::find_if(pos, stream.end(), [](char c) { return !zen::isDigit(c); });
- int digitCount = digitEnd - pos;
+ auto digitEnd = std::find_if(pos, stream.end(), [](char c) { return !zen::isDigit(c); });
+ ptrdiff_t digitCount = digitEnd - pos;
if (digitCount != 0)
{
- Token out(Token::TK_NUMBER);
- out.number = zen::stringTo<int>(Wstring(&*pos, digitCount));
+ Token out(Token::TK_CONST_NUMBER);
+ out.number = zen::stringTo<int>(std::string(&*pos, digitCount));
pos += digitCount;
return out;
}
@@ -211,25 +208,25 @@ private:
}
private:
- bool startsWith(const Wstring& prefix) const
+ bool startsWith(const std::string& prefix) const
{
if (stream.end() - pos < static_cast<ptrdiff_t>(prefix.size()))
return false;
return std::equal(prefix.begin(), prefix.end(), pos);
}
- typedef std::vector<std::pair<Wstring, Token::Type> > TokenList;
+ typedef std::vector<std::pair<std::string, Token::Type> > TokenList;
TokenList tokens;
- const Wstring stream;
- Wstring::const_iterator pos;
+ const std::string stream;
+ std::string::const_iterator pos;
};
class Parser
{
public:
- Parser(const Wstring& phrase, //in
+ Parser(const std::string& phrase, //in
const Expr<int>*& expr, int& n, PluralForm::DumpList& dump) : //out
scn(phrase),
tk(scn.nextToken()),
@@ -238,8 +235,8 @@ private:
{
try
{
- const Expression& e = parse();
- expr = &dynamic_cast<const Expr<int>&>(e);
+ const Expression& e = parse(); //throw std::bad_cast, ParsingError
+ expr = &dynamic_cast<const Expr<int>&>(e); //
}
catch (std::bad_cast&) { throw ParsingError(); }
@@ -250,14 +247,14 @@ private:
void nextToken() { tk = scn.nextToken(); }
const Token& token() const { return tk; }
- void consumeToken(Token::Type t)
+ void consumeToken(Token::Type t) //throw ParsingError
{
if (token().type != t)
throw ParsingError();
nextToken();
}
- const Expression& parse() { return parseConditional(); };
+ const Expression& parse() { return parseConditional(); }; //throw std::bad_cast, ParsingError
const Expression& parseConditional()
{
@@ -270,9 +267,9 @@ private:
consumeToken(Token::TK_TERNARY_COLON);
const Expression& elseEx = parse(); //
- return manageObj(TernaryExp<Expr<int> >(dynamic_cast<const Expr<bool>&>(e),
- dynamic_cast<const Expr<int>&>(thenEx),
- dynamic_cast<const Expr<int>&>(elseEx)));
+ return manageObj(TernaryExp<int>(dynamic_cast<const Expr<bool>&>(e), //
+ dynamic_cast<const Expr<int>&>(thenEx), //throw std::bad_cast
+ dynamic_cast<const Expr<int>&>(elseEx))); //
}
return e;
}
@@ -280,29 +277,25 @@ private:
const Expression& parseLogicalOr()
{
const Expression* e = &parseLogicalAnd();
- for (;;) //associativity: ->
- if (token().type == Token::TK_OR)
- {
- nextToken();
- const Expression& rhs = parseLogicalAnd();
- e = &manageObj(makeBiExp(*e, rhs, std::logical_or<bool>()));
- }
- else break;
+ while (token().type == Token::TK_OR) //associativity: ->
+ {
+ nextToken();
+ const Expression& rhs = parseLogicalAnd();
+ e = &manageObj(makeBiExp(*e, rhs, std::logical_or<bool>())); //throw std::bad_cast
+ }
return *e;
}
const Expression& parseLogicalAnd()
{
const Expression* e = &parseEquality();
- for (;;) //associativity: ->
- if (token().type == Token::TK_AND)
- {
- nextToken();
- const Expression& rhs = parseEquality();
+ while (token().type == Token::TK_AND) //associativity: ->
+ {
+ nextToken();
+ const Expression& rhs = parseEquality();
- e = &manageObj(makeBiExp(*e, rhs, std::logical_and<bool>()));
- }
- else break;
+ e = &manageObj(makeBiExp(*e, rhs, std::logical_and<bool>())); //throw std::bad_cast
+ }
return *e;
}
@@ -316,8 +309,8 @@ private:
nextToken();
const Expression& rhs = parseRelational();
- if (t == Token::TK_EQUAL) return manageObj(makeBiExp(e, rhs, std::equal_to <int>()));
- if (t == Token::TK_NOT_EQUAL) return manageObj(makeBiExp(e, rhs, std::not_equal_to<int>()));
+ if (t == Token::TK_EQUAL) return manageObj(makeBiExp(e, rhs, std::equal_to <int>())); //throw std::bad_cast
+ if (t == Token::TK_NOT_EQUAL) return manageObj(makeBiExp(e, rhs, std::not_equal_to<int>())); //
}
return e;
}
@@ -335,10 +328,10 @@ private:
nextToken();
const Expression& rhs = parseMultiplicative();
- if (t == Token::TK_LESS) return manageObj(makeBiExp(e, rhs, std::less <int>()));
- if (t == Token::TK_LESS_EQUAL) return manageObj(makeBiExp(e, rhs, std::less_equal <int>()));
- if (t == Token::TK_GREATER) return manageObj(makeBiExp(e, rhs, std::greater <int>()));
- if (t == Token::TK_GREATER_EQUAL) return manageObj(makeBiExp(e, rhs, std::greater_equal<int>()));
+ if (t == Token::TK_LESS) return manageObj(makeBiExp(e, rhs, std::less <int>())); //
+ if (t == Token::TK_LESS_EQUAL) return manageObj(makeBiExp(e, rhs, std::less_equal <int>())); //throw std::bad_cast
+ if (t == Token::TK_GREATER) return manageObj(makeBiExp(e, rhs, std::greater <int>())); //
+ if (t == Token::TK_GREATER_EQUAL) return manageObj(makeBiExp(e, rhs, std::greater_equal<int>())); //
}
return e;
}
@@ -347,35 +340,33 @@ private:
{
const Expression* e = &parsePrimary();
- for (;;) //associativity: ->
- if (token().type == Token::TK_MODULUS)
- {
- nextToken();
- const Expression& rhs = parsePrimary();
+ while (token().type == Token::TK_MODULUS) //associativity: ->
+ {
+ nextToken();
+ const Expression& rhs = parsePrimary();
- //"compile-time" check: n % 0
- const LiteralNumberEx* literal = dynamic_cast<const LiteralNumberEx*>(&rhs);
- if (literal && literal->eval() == 0)
+ //"compile-time" check: n % 0
+ if (auto literal = dynamic_cast<const ConstNumberExp*>(&rhs))
+ if (literal->eval() == 0)
throw ParsingError();
- e = &manageObj(makeBiExp(*e, rhs, std::modulus<int>()));
- }
- else break;
+ e = &manageObj(makeBiExp(*e, rhs, std::modulus<int>())); //throw std::bad_cast
+ }
return *e;
}
const Expression& parsePrimary()
{
- if (token().type == Token::TK_N)
+ if (token().type == Token::TK_VARIABLE_N)
{
nextToken();
- return manageObj(NumberN(n_));
+ return manageObj(VariableNumberNExp(n_));
}
- else if (token().type == Token::TK_NUMBER)
+ else if (token().type == Token::TK_CONST_NUMBER)
{
const int number = token().number;
nextToken();
- return manageObj(LiteralNumberEx(number));
+ return manageObj(ConstNumberExp(number));
}
else if (token().type == Token::TK_BRACKET_LEFT)
{
diff --git a/lib/perf_check.cpp b/lib/perf_check.cpp
index f8d80191..878b41a2 100644
--- a/lib/perf_check.cpp
+++ b/lib/perf_check.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "perf_check.h"
@@ -10,7 +10,7 @@
//#include <wx/ffile.h>
#include <zen/basic_math.h>
#include <zen/i18n.h>
-#include <wx+/format_unit.h>
+#include <zen/format_unit.h>
using namespace zen;
diff --git a/lib/perf_check.h b/lib/perf_check.h
index d16c35f9..b8014582 100644
--- a/lib/perf_check.h
+++ b/lib/perf_check.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef STATISTICS_H_INCLUDED
diff --git a/lib/process_xml.cpp b/lib/process_xml.cpp
index 0b53a0f5..57ba69e6 100644
--- a/lib/process_xml.cpp
+++ b/lib/process_xml.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "process_xml.h"
@@ -81,15 +81,15 @@ wxString xmlAccess::getGlobalConfigFile()
void xmlAccess::OptionalDialogs::resetDialogs()
{
- warningDependentFolders = true;
- warningMultiFolderWriteAccess = true;
- warningSignificantDifference = true;
- warningNotEnoughDiskSpace = true;
- warningUnresolvedConflicts = true;
- warningSyncDatabase = true;
- warningRecyclerMissing = true;
- popupOnConfigChange = true;
- showSummaryBeforeSync = true;
+ warningDependentFolders = true;
+ warningFolderPairRaceCondition = true;
+ warningSignificantDifference = true;
+ warningNotEnoughDiskSpace = true;
+ warningUnresolvedConflicts = true;
+ warningDatabaseError = true;
+ warningRecyclerMissing = true;
+ popupOnConfigChange = true;
+ confirmSyncStart = true;
}
@@ -132,7 +132,7 @@ xmlAccess::XmlBatchConfig xmlAccess::convertGuiToBatch(const xmlAccess::XmlGuiCo
{
std::vector<Zstring> filenames;
filenames.push_back(referenceFile);
- convertConfig(filenames, output); //throw xmlAccess::FfsXmlError
+ mergeConfigs(filenames, output); //throw xmlAccess::FfsXmlError
}
catch (xmlAccess::FfsXmlError&) {}
@@ -242,13 +242,13 @@ void mergeConfigFilesImpl(const std::vector<Zstring>& filenames, XmlCfg& config)
}
-void xmlAccess::convertConfig(const std::vector<Zstring>& filenames, XmlGuiConfig& config) //throw FfsXmlError
+void xmlAccess::mergeConfigs(const std::vector<Zstring>& filenames, XmlGuiConfig& config) //throw FfsXmlError
{
mergeConfigFilesImpl(filenames, config); //throw FfsXmlError
}
-void xmlAccess::convertConfig(const std::vector<Zstring>& filenames, XmlBatchConfig& config) //throw FfsXmlError
+void xmlAccess::mergeConfigs(const std::vector<Zstring>& filenames, XmlBatchConfig& config) //throw FfsXmlError
{
mergeConfigFilesImpl(filenames, config); //throw FfsXmlError
}
@@ -778,7 +778,7 @@ void readConfig(const XmlIn& in, SyncConfig& syncCfg)
if (in["CustomDeletionFolder"])
{
in["CustomDeletionFolder"](syncCfg.versioningDirectory);//obsolete name
- syncCfg.versionCountLimit = 0; //new parameter
+ syncCfg.versionCountLimit = -1; //new parameter
}
else
{
@@ -943,16 +943,31 @@ void readConfig(const XmlIn& in, XmlGlobalSettings& config)
//max. allowed file time deviation
inShared["FileTimeTolerance"](config.fileTimeTolerance);
- XmlIn inOpt = inShared["ShowOptionalDialogs"];
- inOpt["CheckForDependentFolders" ](config.optDialogs.warningDependentFolders);
- inOpt["CheckForMultipleWriteAccess" ](config.optDialogs.warningMultiFolderWriteAccess);
- inOpt["CheckForSignificantDifference"](config.optDialogs.warningSignificantDifference);
- inOpt["CheckForFreeDiskSpace"](config.optDialogs.warningNotEnoughDiskSpace);
- inOpt["CheckForUnresolvedConflicts"](config.optDialogs.warningUnresolvedConflicts);
- inOpt["NotifyDatabaseError"](config.optDialogs.warningSyncDatabase);
- inOpt["CheckMissingRecycleBin"](config.optDialogs.warningRecyclerMissing);
- inOpt["PopupOnConfigChange"](config.optDialogs.popupOnConfigChange);
- inOpt["SummaryBeforeSync" ](config.optDialogs.showSummaryBeforeSync);
+ XmlIn inOpt = inShared["OptionalDialogs"];
+ inOpt["WarnUnresolvedConflicts" ](config.optDialogs.warningUnresolvedConflicts);
+ inOpt["WarnNotEnoughDiskSpace" ](config.optDialogs.warningNotEnoughDiskSpace);
+ inOpt["WarnSignificantDifference" ](config.optDialogs.warningSignificantDifference);
+ inOpt["WarnRecycleBinNotAvailable" ](config.optDialogs.warningRecyclerMissing);
+ inOpt["WarnDatabaseError" ](config.optDialogs.warningDatabaseError);
+ inOpt["WarnDependentFolders" ](config.optDialogs.warningDependentFolders);
+ inOpt["WarnFolderPairRaceCondition"](config.optDialogs.warningFolderPairRaceCondition);
+ inOpt["PromptSaveConfig" ](config.optDialogs.popupOnConfigChange);
+ inOpt["ConfirmSyncStart" ](config.optDialogs.confirmSyncStart);
+
+ warn_static("remove after migration?")
+ if (!inOpt)
+ {
+ inOpt = inShared["ShowOptionalDialogs"];
+ inOpt["CheckForDependentFolders" ](config.optDialogs.warningDependentFolders);
+ inOpt["CheckForMultipleWriteAccess" ](config.optDialogs.warningFolderPairRaceCondition);
+ inOpt["CheckForSignificantDifference"](config.optDialogs.warningSignificantDifference);
+ inOpt["CheckForFreeDiskSpace"](config.optDialogs.warningNotEnoughDiskSpace);
+ inOpt["CheckForUnresolvedConflicts"](config.optDialogs.warningUnresolvedConflicts);
+ inOpt["NotifyDatabaseError" ](config.optDialogs.warningDatabaseError);
+ inOpt["CheckMissingRecycleBin"](config.optDialogs.warningRecyclerMissing);
+ inOpt["PopupOnConfigChange" ](config.optDialogs.popupOnConfigChange);
+ inOpt["SummaryBeforeSync" ](config.optDialogs.confirmSyncStart);
+ }
//gui specific global settings (optional)
XmlIn inGui = in["Gui"];
@@ -1233,16 +1248,16 @@ void writeConfig(const XmlGlobalSettings& config, XmlOut& out)
//max. allowed file time deviation
outShared["FileTimeTolerance"](config.fileTimeTolerance);
- XmlOut outOpt = outShared["ShowOptionalDialogs"];
- outOpt["CheckForDependentFolders" ](config.optDialogs.warningDependentFolders);
- outOpt["CheckForMultipleWriteAccess" ](config.optDialogs.warningMultiFolderWriteAccess);
- outOpt["CheckForSignificantDifference"](config.optDialogs.warningSignificantDifference);
- outOpt["CheckForFreeDiskSpace" ](config.optDialogs.warningNotEnoughDiskSpace);
- outOpt["CheckForUnresolvedConflicts" ](config.optDialogs.warningUnresolvedConflicts);
- outOpt["NotifyDatabaseError" ](config.optDialogs.warningSyncDatabase);
- outOpt["CheckMissingRecycleBin" ](config.optDialogs.warningRecyclerMissing);
- outOpt["PopupOnConfigChange" ](config.optDialogs.popupOnConfigChange);
- outOpt["SummaryBeforeSync" ](config.optDialogs.showSummaryBeforeSync);
+ XmlOut outOpt = outShared["OptionalDialogs"];
+ outOpt["WarnUnresolvedConflicts" ](config.optDialogs.warningUnresolvedConflicts);
+ outOpt["WarnNotEnoughDiskSpace" ](config.optDialogs.warningNotEnoughDiskSpace);
+ outOpt["WarnSignificantDifference" ](config.optDialogs.warningSignificantDifference);
+ outOpt["WarnRecycleBinNotAvailable" ](config.optDialogs.warningRecyclerMissing);
+ outOpt["WarnDatabaseError" ](config.optDialogs.warningDatabaseError);
+ outOpt["WarnDependentFolders" ](config.optDialogs.warningDependentFolders);
+ outOpt["WarnFolderPairRaceCondition"](config.optDialogs.warningFolderPairRaceCondition);
+ outOpt["PromptSaveConfig" ](config.optDialogs.popupOnConfigChange);
+ outOpt["ConfirmSyncStart" ](config.optDialogs.confirmSyncStart);
//gui specific global settings (optional)
XmlOut outGui = out["Gui"];
diff --git a/lib/process_xml.h b/lib/process_xml.h
index 7191e0c2..ec1a142f 100644
--- a/lib/process_xml.h
+++ b/lib/process_xml.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef PROCESSXML_H_INCLUDED
@@ -91,14 +91,14 @@ struct OptionalDialogs
void resetDialogs();
bool warningDependentFolders;
- bool warningMultiFolderWriteAccess;
+ bool warningFolderPairRaceCondition;
bool warningSignificantDifference;
bool warningNotEnoughDiskSpace;
bool warningUnresolvedConflicts;
- bool warningSyncDatabase;
+ bool warningDatabaseError;
bool warningRecyclerMissing;
bool popupOnConfigChange;
- bool showSummaryBeforeSync;
+ bool confirmSyncStart;
};
@@ -154,7 +154,7 @@ struct XmlGlobalSettings
naviLastSortColumn(zen::defaultValueLastSortColumn),
naviLastSortAscending(zen::defaultValueLastSortAscending),
showPercentBar(zen::defaultValueShowPercentage),
- cfgFileHistMax(20),
+ cfgFileHistMax(30),
folderHistMax(15),
onCompletionHistoryMax(8),
deleteOnBothSides(false),
@@ -228,13 +228,13 @@ struct XmlGlobalSettings
//struct Batch
};
-void readConfig(const Zstring& filename, XmlGuiConfig& config); //throw FfsXmlError
+void readConfig(const Zstring& filename, XmlGuiConfig& config); //
void readConfig(const Zstring& filename, XmlBatchConfig& config); //throw FfsXmlError
-void readConfig( XmlGlobalSettings& config); //throw FfsXmlError
+void readConfig( XmlGlobalSettings& config); //
-void writeConfig(const XmlGuiConfig& config, const Zstring& filename); //throw FfsXmlError
+void writeConfig(const XmlGuiConfig& config, const Zstring& filename); //
void writeConfig(const XmlBatchConfig& config, const Zstring& filename); //throw FfsXmlError
-void writeConfig(const XmlGlobalSettings& config); //throw FfsXmlError
+void writeConfig(const XmlGlobalSettings& config); //
//config conversion utilities
XmlGuiConfig convertBatchToGui(const XmlBatchConfig& batchCfg);
@@ -251,8 +251,8 @@ enum MergeType
};
MergeType getMergeType(const std::vector<Zstring>& filenames); //throw ()
-void convertConfig(const std::vector<Zstring>& filenames, XmlGuiConfig& config); //throw xmlAccess::FfsXmlError
-void convertConfig(const std::vector<Zstring>& filenames, XmlBatchConfig& config); //throw xmlAccess::FfsXmlError
+void mergeConfigs(const std::vector<Zstring>& filenames, XmlGuiConfig& config); //throw xmlAccess::FfsXmlError
+void mergeConfigs(const std::vector<Zstring>& filenames, XmlBatchConfig& config); //throw xmlAccess::FfsXmlError
std::wstring extractJobName(const Zstring& configFilename);
}
diff --git a/lib/resolve_path.cpp b/lib/resolve_path.cpp
index 425a640b..11733136 100644
--- a/lib/resolve_path.cpp
+++ b/lib/resolve_path.cpp
@@ -86,7 +86,7 @@ private:
{
auto addCsidl = [&](int csidl, const Zstring& paramName)
{
- wchar_t buffer[MAX_PATH];
+ wchar_t buffer[MAX_PATH] = {};
if (SUCCEEDED(::SHGetFolderPath(nullptr, //__in HWND hwndOwner,
csidl | CSIDL_FLAG_DONT_VERIFY, //__in int nFolder,
nullptr, //__in HANDLE hToken,
@@ -99,37 +99,55 @@ private:
}
};
- addCsidl(CSIDL_DESKTOPDIRECTORY, L"csidl_Desktop"); // C:\Users\username\Desktop
+ addCsidl(CSIDL_DESKTOPDIRECTORY, L"csidl_Desktop"); // C:\Users\<user>\Desktop
addCsidl(CSIDL_COMMON_DESKTOPDIRECTORY, L"csidl_PublicDesktop"); // C:\Users\All Users\Desktop
- addCsidl(CSIDL_MYMUSIC, L"csidl_MyMusic"); // C:\Users\username\My Documents\My Music
- addCsidl(CSIDL_COMMON_MUSIC, L"csidl_PublicMusic"); // C:\Users\All Users\Documents\My Music
+ addCsidl(CSIDL_FAVORITES, L"csidl_Favorites"); // C:\Users\<user>\Favorites
+ addCsidl(CSIDL_COMMON_FAVORITES, L"csidl_PublicFavorites"); // C:\Users\<user>\Favorites; unused? -> http://blogs.msdn.com/b/oldnewthing/archive/2012/09/04/10346022.aspx
- addCsidl(CSIDL_MYPICTURES, L"csidl_MyPictures"); // C:\Users\username\My Documents\My Pictures
- addCsidl(CSIDL_COMMON_PICTURES, L"csidl_PublicPictures"); // C:\Users\All Users\Documents\My Pictures
+ addCsidl(CSIDL_PERSONAL, L"csidl_MyDocuments"); // C:\Users\<user>\Documents
+ addCsidl(CSIDL_COMMON_DOCUMENTS, L"csidl_PublicDocuments"); // C:\Users\Public\Documents
- addCsidl(CSIDL_MYVIDEO, L"csidl_MyVideo"); // C:\Users\username\My Documents\My Videos
- addCsidl(CSIDL_COMMON_VIDEO, L"csidl_PublicVideo"); // C:\Users\All Users\Documents\My Videos
+ addCsidl(CSIDL_MYMUSIC, L"csidl_MyMusic"); // C:\Users\<user>\Music
+ addCsidl(CSIDL_COMMON_MUSIC, L"csidl_PublicMusic"); // C:\Users\Public\Music
- addCsidl(CSIDL_PERSONAL, L"csidl_MyDocuments"); // C:\Users\username\My Documents
- addCsidl(CSIDL_COMMON_DOCUMENTS, L"csidl_PublicDocuments"); // C:\Users\All Users\Documents
+ addCsidl(CSIDL_MYPICTURES, L"csidl_MyPictures"); // C:\Users\<user>\Pictures
+ addCsidl(CSIDL_COMMON_PICTURES, L"csidl_PublicPictures"); // C:\Users\Public\Pictures
- addCsidl(CSIDL_STARTMENU, L"csidl_StartMenu"); // C:\Users\username\Start Menu
- addCsidl(CSIDL_COMMON_STARTMENU, L"csidl_PublicStartMenu"); // C:\Users\All Users\Start Menu
+ addCsidl(CSIDL_MYVIDEO, L"csidl_MyVideos"); // C:\Users\<user>\Videos
+ addCsidl(CSIDL_COMMON_VIDEO, L"csidl_PublicVideos"); // C:\Users\Public\Videos
- addCsidl(CSIDL_FAVORITES, L"csidl_Favorites"); // C:\Users\username\Favorites
- addCsidl(CSIDL_COMMON_FAVORITES, L"csidl_PublicFavorites"); // C:\Users\All Users\Favoriten
+ addCsidl(CSIDL_NETHOOD, L"csidl_Nethood"); // C:\Users\<user>\AppData\Roaming\Microsoft\Windows\Network Shortcuts
- addCsidl(CSIDL_TEMPLATES, L"csidl_Templates"); // C:\Users\username\Templates
- addCsidl(CSIDL_COMMON_TEMPLATES, L"csidl_PublicTemplates"); // C:\Users\All Users\Templates
+ 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_RESOURCES, L"csidl_Resources"); // C:\Windows\Resources
- //CSIDL_APPDATA covered by %AppData%
- //CSIDL_LOCAL_APPDATA covered by %LocalAppData%
- //CSIDL_COMMON_APPDATA covered by %ProgramData%
-
- //CSIDL_PROFILE covered by %UserProfile%
+ 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_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_TEMPLATES, L"csidl_Templates"); // C:\Users\<user>\AppData\Roaming\Microsoft\Windows\Templates
+ addCsidl(CSIDL_COMMON_TEMPLATES, L"csidl_PublicTemplates"); // C:\ProgramData\Microsoft\Windows\Templates
+
+ /*
+ CSIDL_APPDATA covered by %AppData%
+ CSIDL_LOCAL_APPDATA covered by %LocalAppData% -> not on XP!
+ CSIDL_COMMON_APPDATA covered by %ProgramData% -> not on XP!
+ CSIDL_PROFILE covered by %UserProfile%
+ CSIDL_WINDOWS covered by %WinDir%
+ CSIDL_SYSTEM covered by %WinDir%
+ CSIDL_SYSTEMX86 covered by %WinDir%
+ CSIDL_PROGRAM_FILES covered by %ProgramFiles%
+ CSIDL_PROGRAM_FILES_COMMON covered by %CommonProgramFiles%
+ CSIDL_PROGRAM_FILESX86 covered by %ProgramFiles(x86)% -> not on XP!
+ CSIDL_PROGRAM_FILES_COMMONX86 covered by %CommonProgramFiles(x86)% -> not on XP!
+ CSIDL_ADMINTOOLS not relevant?
+ CSIDL_COMMON_ADMINTOOLS not relevant?
+ */
}
CsidlConstants(const CsidlConstants&);
@@ -193,12 +211,12 @@ std::unique_ptr<Zstring> resolveMacro(const Zstring& macro, //macro without %-ch
if (processPhrase(Zstr("min" ), Zstr("%M"))) return cand;
if (processPhrase(Zstr("sec" ), Zstr("%S"))) return cand;
- //check domain-specific extensions
- {
- auto iter = std::find_if(ext.begin(), ext.end(), [&](const std::pair<Zstring, Zstring>& p){ return equalNoCase(macro, p.first); });
+ //check domain-specific extensions
+ {
+ auto iter = std::find_if(ext.begin(), ext.end(), [&](const std::pair<Zstring, Zstring>& p) { return equalNoCase(macro, p.first); });
if (iter != ext.end())
return make_unique<Zstring>(iter->second);
- }
+ }
//try to resolve as environment variable
if (std::unique_ptr<Zstring> value = getEnvironmentVar(macro))
@@ -446,6 +464,8 @@ void getDirectoryAliasesRecursive(const Zstring& dirname, std::set<Zstring, Less
addEnvVar(L"ProgramData"); // C:\ProgramData
addEnvVar(L"ProgramFiles"); // C:\Program Files
addEnvVar(L"ProgramFiles(x86)");// C:\Program Files (x86)
+ addEnvVar(L"CommonProgramFiles"); // C:\Program Files\Common Files
+ addEnvVar(L"CommonProgramFiles(x86)"); // C:\Program Files (x86)\Common Files
addEnvVar(L"Public"); // C:\Users\Public
addEnvVar(L"UserProfile"); // C:\Users\username
addEnvVar(L"WinDir"); // C:\Windows
diff --git a/lib/resolve_path.h b/lib/resolve_path.h
index ccc8f42e..0132b51f 100644
--- a/lib/resolve_path.h
+++ b/lib/resolve_path.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef RESOLVE_PATH_H_INCLUDED
diff --git a/lib/resources.cpp b/lib/resources.cpp
index ac20066a..6d586e54 100644
--- a/lib/resources.cpp
+++ b/lib/resources.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "resources.h"
@@ -65,10 +65,10 @@ GlobalResources::GlobalResources()
//generic image loading
if (name.EndsWith(L".png"))
bitmaps.insert(std::make_pair(name, wxImage(resourceFile, wxBITMAP_TYPE_PNG)));
- //else if (name == L"money.gif")
- // loadAnimFromZip(resourceFile, animationMoney);
+ else if (name == L"wink.gif")
+ loadAnimFromZip(resourceFile, aniWink);
else if (name == L"working.gif")
- loadAnimFromZip(resourceFile, animationSync);
+ loadAnimFromZip(resourceFile, aniSync);
}
}
diff --git a/lib/resources.h b/lib/resources.h
index df13340d..9081ff4e 100644
--- a/lib/resources.h
+++ b/lib/resources.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef RESOURCES_H_INCLUDED
@@ -21,8 +21,8 @@ public:
static const wxBitmap& getImage(const wxString& name) { return instance().getImageInt(name); }
//global image resource objects
- //wxAnimation animationMoney;
- wxAnimation animationSync;
+ wxAnimation aniWink;
+ wxAnimation aniSync;
wxIcon programIcon;
private:
diff --git a/lib/return_codes.h b/lib/return_codes.h
index 34ae0527..0bd98a41 100644
--- a/lib/return_codes.h
+++ b/lib/return_codes.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef RETURN_CODES_H_INCLUDED
@@ -16,6 +16,15 @@ enum FfsReturnCode
FFS_RC_ABORTED,
FFS_RC_EXCEPTION,
};
+
+
+inline
+void raiseReturnCode(FfsReturnCode& rc, FfsReturnCode rcProposed)
+{
+ if (rc < rcProposed)
+ rc = rcProposed;
+}
+
}
diff --git a/lib/shadow.cpp b/lib/shadow.cpp
index 5a5b9cef..5f2225e7 100644
--- a/lib/shadow.cpp
+++ b/lib/shadow.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "shadow.h"
diff --git a/lib/shadow.h b/lib/shadow.h
index bb834a41..cbe40dbb 100644
--- a/lib/shadow.h
+++ b/lib/shadow.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef SHADOW_H_INCLUDED
diff --git a/lib/soft_filter.h b/lib/soft_filter.h
index b9fb2fd4..32e7888d 100644
--- a/lib/soft_filter.h
+++ b/lib/soft_filter.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef SOFT_FILTER_H_INCLUDED
@@ -10,7 +10,7 @@
#include <algorithm>
#include <limits>
#include "../structures.h"
-#include <wx/stopwatch.h>
+//#include <wx/stopwatch.h>
namespace zen
{
@@ -30,9 +30,7 @@ public:
bool matchTime(Int64 writeTime) const { return timeFrom_ <= writeTime; }
bool matchSize(UInt64 fileSize) const { return sizeMin_ <= fileSize && fileSize <= sizeMax_; }
- bool matchFolder() const { return timeFrom_ == std::numeric_limits<Int64>::min(); }
- //if date filter is active we deactivate all folders: effectively gets rid of empty folders!
-
+ bool matchFolder() const { return matchesFolder_; }
bool isNull() const; //filter is equivalent to NullFilter, but may be technically slower
//small helper method: merge two soft filters
@@ -41,11 +39,13 @@ public:
private:
SoftFilter(const Int64& timeFrom,
const UInt64& sizeMin,
- const UInt64& sizeMax);
+ const UInt64& sizeMax,
+ bool matchesFolder);
Int64 timeFrom_; //unit: UTC, seconds
UInt64 sizeMin_; //unit: bytes
UInt64 sizeMax_; //unit: bytes
+ bool matchesFolder_;
};
}
@@ -75,7 +75,10 @@ namespace zen
inline
SoftFilter::SoftFilter(size_t timeSpan, UnitTime unitTimeSpan,
size_t sizeMin, UnitSize unitSizeMin,
- size_t sizeMax, UnitSize unitSizeMax)
+ size_t sizeMax, UnitSize unitSizeMax) :
+ matchesFolder_(unitTimeSpan == UTIME_NONE &&
+ unitSizeMin == USIZE_NONE &&
+ unitSizeMax == USIZE_NONE) //exclude folders if size or date filter is active: avoids creating empty folders if not needed!
{
resolveUnits(timeSpan, unitTimeSpan,
sizeMin, unitSizeMin,
@@ -88,17 +91,20 @@ SoftFilter::SoftFilter(size_t timeSpan, UnitTime unitTimeSpan,
inline
SoftFilter::SoftFilter(const Int64& timeFrom,
const UInt64& sizeMin,
- const UInt64& sizeMax) :
+ const UInt64& sizeMax,
+ bool matchesFolder) :
timeFrom_(timeFrom),
sizeMin_ (sizeMin),
- sizeMax_ (sizeMax) {}
+ sizeMax_ (sizeMax),
+ matchesFolder_(matchesFolder) {}
inline
-SoftFilter combineFilters(const SoftFilter& first, const SoftFilter& second)
+SoftFilter combineFilters(const SoftFilter& lhs, const SoftFilter& rhs)
{
- return SoftFilter(std::max(first.timeFrom_, second.timeFrom_),
- std::max(first.sizeMin_, second.sizeMin_),
- std::min(first.sizeMax_, second.sizeMax_));
+ return SoftFilter(std::max(lhs.timeFrom_, rhs.timeFrom_),
+ std::max(lhs.sizeMin_, rhs.sizeMin_),
+ std::min(lhs.sizeMax_, rhs.sizeMax_),
+ lhs.matchesFolder_ && rhs.matchesFolder_);
}
inline
@@ -106,7 +112,8 @@ bool SoftFilter::isNull() const //filter is equivalent to NullFilter, but may be
{
return timeFrom_ == std::numeric_limits<Int64>::min() &&
sizeMin_ == 0U &&
- sizeMax_ == std::numeric_limits<UInt64>::max();
+ sizeMax_ == std::numeric_limits<UInt64>::max() &&
+ matchesFolder_ == true;;
}
}
diff --git a/lib/status_handler.cpp b/lib/status_handler.cpp
index a7286c39..3188ba0d 100644
--- a/lib/status_handler.cpp
+++ b/lib/status_handler.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "status_handler.h"
diff --git a/lib/status_handler.h b/lib/status_handler.h
index 129d5ae9..789293e4 100644
--- a/lib/status_handler.h
+++ b/lib/status_handler.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef STATUSHANDLER_H_INCLUDED
diff --git a/lib/status_handler_impl.h b/lib/status_handler_impl.h
index 16466556..615288d2 100644
--- a/lib/status_handler_impl.h
+++ b/lib/status_handler_impl.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef STATUSHANDLER_IMPL_H_INCLUDED
diff --git a/lib/versioning.cpp b/lib/versioning.cpp
index a285bb70..b12d7307 100644
--- a/lib/versioning.cpp
+++ b/lib/versioning.cpp
@@ -230,7 +230,7 @@ void FileVersioner::revisionFile(const Zstring& sourceFile, const Zstring& relat
callback.objectProcessed();
});
- fileRelnames.push_back(relativeName);
+ fileRelNames.push_back(relativeName);
}
@@ -254,7 +254,7 @@ void FileVersioner::revisionDir(const Zstring& sourceDir, const Zstring& relativ
callback.objectProcessed();
});
- fileRelnames.push_back(relativeName);
+ fileRelNames.push_back(relativeName);
}
else
{
@@ -354,7 +354,7 @@ void FileVersioner::limitVersions(std::function<void()> updateUI) //throw FileEr
return newEntry;
};
- std::for_each(fileRelnames.begin(), fileRelnames.end(),
+ std::for_each(fileRelNames.begin(), fileRelNames.end(),
[&](const Zstring& relativeName) //e.g. "subdir\Sample.txt"
{
const Zstring fullname = appendSeparator(versioningDirectory_) + relativeName; //e.g. "D:\Revisions\subdir\Sample.txt"
diff --git a/lib/versioning.h b/lib/versioning.h
index 36721edb..b025511b 100644
--- a/lib/versioning.h
+++ b/lib/versioning.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef VERSIONING_HEADER_8760247652438056
@@ -53,7 +53,7 @@ private:
const Zstring timeStamp_;
const int versionCountLimit_;
- std::vector<Zstring> fileRelnames; //store list of revisioned files and symlinks (relativeName) for limitVersions()
+ std::vector<Zstring> fileRelNames; //store list of revisioned file and symlink relative names for limitVersions()
};
diff --git a/lib/xml_base.cpp b/lib/xml_base.cpp
index 9aa069c7..c7650bc0 100644
--- a/lib/xml_base.cpp
+++ b/lib/xml_base.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "xml_base.h"
diff --git a/lib/xml_base.h b/lib/xml_base.h
index 5c0ec3c3..338f91f7 100644
--- a/lib/xml_base.h
+++ b/lib/xml_base.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef XMLBASE_H_INCLUDED
diff --git a/process_callback.h b/process_callback.h
index e9f0955e..0f540df6 100644
--- a/process_callback.h
+++ b/process_callback.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef PROC_HEADER_48257827842345454545
diff --git a/resource.rc b/resource.rc
index e4675de4..bf62d7b2 100644
--- a/resource.rc
+++ b/resource.rc
@@ -3,21 +3,33 @@
#include <Winver.h>
#include "version/version.rc"
-//beginning with VC11 we get linking error "CVTRES : fatal error CVT1100: duplicate resource. type:MANIFEST, name:1, language:0x0409"
-//due to "#define wxMANIFEST_ID 1" in wx.rc. Using another number doesn't integrate the manifest correctly for VC2010 compilers.
-//However tests indicate we do not need this manifest at all:
-//#define wxUSE_NO_MANIFEST 1 //VC11 screws up if not set to an integer, unbelievable
-//we can't #ifdef _MSC_VER: not known by resource compiler!
-//see also: http://blog.m-ri.de/index.php/2010/11/26/combobox-dropdown-hoehe-wird-nicht-mehr-durch-die-ressourcen-definiert/
+#define wxUSE_NO_MANIFEST 1 //lame resource compiler requires us to define an integer here
#include <wx/msw/wx.rc>
+/*
+Reasons to NOT use the wxWidgets manifest file:
+ 1. beginning with VC11 we get linking error "CVTRES : fatal error CVT1100: duplicate resource. type:MANIFEST, name:1, language:0x0409"
+ due to "#define wxMANIFEST_ID 1" in wx.rc. Using another number doesn't integrate the manifest correctly for VC2010 compilers.
+ 2. it is missing the "requestedExecutionLevel" element. Consequently UAC virtualization will be active for a 32 bit executable started in user mode
+*/
+
+//MSDN on manifests: http://msdn.microsoft.com/en-us/library/bb756929.aspx
+#define MANIFEST_RESOURCE_ID 1
+#if defined(WX_CPU_AMD64) //check for 64 bit *first*
+MANIFEST_RESOURCE_ID RT_MANIFEST "amd64.manifest"
+#elif defined(WX_CPU_X86)
+MANIFEST_RESOURCE_ID RT_MANIFEST "win32.manifest"
+#else
+#error What is going on?
+#endif
+
A_PROGRAM_ICON ICON DISCARDABLE "lib/FreeFileSync.ico"
B_BATCH_ICON ICON DISCARDABLE "lib/Batch.ico"
C_SYNC_DB_ICON ICON DISCARDABLE "lib/SyncDB.ico"
IDR_VERSION1 VERSIONINFO
-FILEVERSION VER_FREEFILESYNC
-PRODUCTVERSION VER_FREEFILESYNC
+FILEVERSION FREEFILESYNC_VER
+PRODUCTVERSION FREEFILESYNC_VER
FILEOS VOS__WINDOWS32
FILETYPE VFT_APP
BEGIN
@@ -26,10 +38,10 @@ BEGIN
BLOCK "FFFF04B0"
BEGIN
VALUE "FileDescription", "Folder Comparison and Synchronization\0"
- VALUE "FileVersion", VER_FREEFILESYNC_STR
+ VALUE "FileVersion", FREEFILESYNC_VER_STR
VALUE "ProductName", "FreeFileSync\0"
- VALUE "ProductVersion", VER_FREEFILESYNC_STR
- VALUE "LegalCopyright", "ZenJu - All Rights Reserved\0"
+ VALUE "ProductVersion", FREEFILESYNC_VER_STR
+ VALUE "LegalCopyright", "Zenju - All Rights Reserved\0"
END
END
BLOCK "VarFileInfo"
diff --git a/structures.cpp b/structures.cpp
index 5e0938ae..0d7b1825 100644
--- a/structures.cpp
+++ b/structures.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "structures.h"
@@ -201,7 +201,7 @@ namespace
assert_static(std::numeric_limits<zen:: Int64>::is_specialized);
assert_static(std::numeric_limits<zen::UInt64>::is_specialized);
-
+/*
int daysSinceBeginOfWeek(int dayOfWeek) //0-6, 0=Monday, 6=Sunday
{
assert(0 <= dayOfWeek && dayOfWeek <= 6);
@@ -220,6 +220,7 @@ int daysSinceBeginOfWeek(int dayOfWeek) //0-6, 0=Monday, 6=Sunday
#endif
return dayOfWeek; //let all weeks begin with monday
}
+*/
Int64 resolve(size_t value, UnitTime unit, Int64 defaultVal)
diff --git a/structures.h b/structures.h
index 8e7d1fd3..ccf87fa6 100644
--- a/structures.h
+++ b/structures.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef FREEFILESYNC_H_INCLUDED
diff --git a/synchronization.cpp b/synchronization.cpp
index 076111be..dcc119a5 100644
--- a/synchronization.cpp
+++ b/synchronization.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "synchronization.h"
@@ -9,7 +9,7 @@
#include <deque>
#include <stdexcept>
#include <wx/file.h> //get rid!?
-#include <wx+/format_unit.h>
+#include <zen/format_unit.h>
#include <zen/scope_guard.h>
#include <zen/process_priority.h>
#include <zen/file_handling.h>
@@ -1843,7 +1843,7 @@ void zen::synchronize(const TimeComp& timeStamp,
//PERF_START;
if (syncConfig.size() != folderCmp.size())
- throw std::logic_error("Programming Error: Contract violation!");
+ throw std::logic_error("Programming Error: Contract violation! " + std::string(__FILE__) + ":" + numberTo<std::string>(__LINE__));
//inform about the total amount of data that will be processed from now on
const SyncStatistics statisticsTotal(folderCmp);
@@ -2152,7 +2152,7 @@ void zen::synchronize(const TimeComp& timeStamp,
std::wstring warningMessage = _("A folder will be modified which is part of multiple folder pairs. Please review synchronization settings.") + L"\n";
for (auto i = conflictDirs.begin(); i != conflictDirs.end(); ++i)
warningMessage += L"\n" + fmtFileName(*i);
- callback.reportWarning(warningMessage, warnings.warningMultiFolderWriteAccess);
+ callback.reportWarning(warningMessage, warnings.warningFolderPairRaceCondition);
}
//-------------------end of basic checks------------------------------------------
diff --git a/synchronization.h b/synchronization.h
index 104ab03d..87ad963a 100644
--- a/synchronization.h
+++ b/synchronization.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef SYNCHRONIZATION_H_INCLUDED
diff --git a/ui/IFileDialog_Vista/dll_main.cpp b/ui/IFileDialog_Vista/dll_main.cpp
index 95d14910..4665154a 100644
--- a/ui/IFileDialog_Vista/dll_main.cpp
+++ b/ui/IFileDialog_Vista/dll_main.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/ui/IFileDialog_Vista/ifile_dialog.cpp b/ui/IFileDialog_Vista/ifile_dialog.cpp
index dd2bc7c8..8c3e694c 100644
--- a/ui/IFileDialog_Vista/ifile_dialog.cpp
+++ b/ui/IFileDialog_Vista/ifile_dialog.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "ifile_dialog.h"
@@ -59,7 +59,7 @@ bool showFolderPickerImpl(HWND ownerWindow, //throw ComError; return "false" if
const wchar_t* allocString(const std::wstring& msg) //ownership passed
{
- auto tmp = new wchar_t [msg.size() + 1]; //bad_alloc ?
+ auto tmp = new wchar_t [msg.size() + 1]; //std::bad_alloc ?
::wmemcpy(tmp, msg.c_str(), msg.size() + 1); //include 0-termination
return tmp;
}
@@ -87,7 +87,7 @@ void ifile::showFolderPicker(void* ownerWindow,
}
catch (const ComError& e)
{
- errorMsg = allocString(e.toString());
+ errorMsg = allocString(e.toString()); //std::bad_alloc ?
}
}
diff --git a/ui/IFileDialog_Vista/ifile_dialog.h b/ui/IFileDialog_Vista/ifile_dialog.h
index 87a67625..d0099dda 100644
--- a/ui/IFileDialog_Vista/ifile_dialog.h
+++ b/ui/IFileDialog_Vista/ifile_dialog.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef IFILE_DIALOG_HEADER_916743921746324
@@ -58,4 +58,6 @@ const char funName_freeString [] = "freeString";
inline const wchar_t* getDllName() { return zen::is64BitBuild ? L"IFileDialog_Vista_x64.dll" : L"IFileDialog_Vista_Win32.dll"; }
}
+#undef DLL_FUNCTION_DECLARATION
+
#endif //IFILE_DIALOG_HEADER_916743921746324
diff --git a/ui/Taskbar_Seven/dll_main.cpp b/ui/Taskbar_Seven/dll_main.cpp
index 95d14910..4665154a 100644
--- a/ui/Taskbar_Seven/dll_main.cpp
+++ b/ui/Taskbar_Seven/dll_main.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/ui/Taskbar_Seven/taskbar.cpp b/ui/Taskbar_Seven/taskbar.cpp
index 32a858b1..6b34fc1a 100644
--- a/ui/Taskbar_Seven/taskbar.cpp
+++ b/ui/Taskbar_Seven/taskbar.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "taskbar.h"
diff --git a/ui/Taskbar_Seven/taskbar.h b/ui/Taskbar_Seven/taskbar.h
index 1f9f7bb3..4a158d1f 100644
--- a/ui/Taskbar_Seven/taskbar.h
+++ b/ui/Taskbar_Seven/taskbar.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef TASKBAR_SEVEN_DLL_H
@@ -69,4 +69,6 @@ const char funName_getLastError[] = "getLastError";
inline const wchar_t* getDllName() { return zen::is64BitBuild ? L"Taskbar7_x64.dll" : L"Taskbar7_Win32.dll"; }
}
+#undef DLL_FUNCTION_DECLARATION
+
#endif //TASKBAR_SEVEN_DLL_H
diff --git a/ui/batch_config.cpp b/ui/batch_config.cpp
index c6d50bd2..f07dbc07 100644
--- a/ui/batch_config.cpp
+++ b/ui/batch_config.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "batch_config.h"
@@ -252,7 +252,7 @@ BatchDialog::BatchDialog(wxWindow* parent,
logfileDir.reset(new DirectoryName<FolderHistoryBox>(*m_panelBatchSettings, *m_buttonSelectLogfileDir, *m_comboBoxLogfileDir));
//set icons for this dialog
- m_bpButtonAddPair->SetBitmapLabel(GlobalResources::getImage(L"addFolderPair"));
+ m_bpButtonAddPair->SetBitmapLabel(GlobalResources::getImage(L"item_add"));
m_bitmap27->SetBitmap(GlobalResources::getImage(L"batch"));
m_buttonSave->SetFocus();
@@ -551,7 +551,7 @@ void BatchDialog::loadBatchFile(const std::vector<wxString>& filenames)
try
{
//open a *.ffs_gui or *.ffs_batch file!
- convertConfig(toZ(filenames), batchCfg); //throw FfsXmlError
+ mergeConfigs(toZ(filenames), batchCfg); //throw FfsXmlError
//readConfig(filename, batchCfg);
}
diff --git a/ui/batch_config.h b/ui/batch_config.h
index e448fba4..98d0bf6b 100644
--- a/ui/batch_config.h
+++ b/ui/batch_config.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef BATCHCONFIG_H_INCLUDED
diff --git a/ui/batch_status_handler.cpp b/ui/batch_status_handler.cpp
index 0fa3d01d..594ffb7a 100644
--- a/ui/batch_status_handler.cpp
+++ b/ui/batch_status_handler.cpp
@@ -1,14 +1,14 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "batch_status_handler.h"
#include <zen/file_handling.h>
#include <zen/file_traverser.h>
+#include <zen/format_unit.h>
#include <wx+/app_main.h>
-#include <wx+/format_unit.h>
#include <wx+/shell_execute.h>
#include "msg_popup.h"
#include "exec_finished_box.h"
@@ -118,7 +118,7 @@ BatchStatusHandler::BatchStatusHandler(bool showProgress,
if (!tryReportingError([&] { logFile = prepareNewLogfile(logfileDirectory, jobName, timeStamp); }, //throw FileError; return value always bound!
*this))
{
- returnCode_ = FFS_RC_ABORTED;
+ raiseReturnCode(returnCode_, FFS_RC_ABORTED);
throw BatchAbortProcess();
}
@@ -141,13 +141,13 @@ BatchStatusHandler::~BatchStatusHandler()
std::wstring finalStatus;
if (abortIsRequested())
{
- returnCode_ = FFS_RC_ABORTED;
+ raiseReturnCode(returnCode_, FFS_RC_ABORTED);
finalStatus = _("Synchronization aborted!");
errorLog.logMsg(finalStatus, TYPE_ERROR);
}
else if (totalErrors > 0)
{
- returnCode_ = FFS_RC_FINISHED_WITH_ERRORS;
+ raiseReturnCode(returnCode_, FFS_RC_FINISHED_WITH_ERRORS);
finalStatus = _("Synchronization completed with errors!");
errorLog.logMsg(finalStatus, TYPE_WARNING);
}
diff --git a/ui/batch_status_handler.h b/ui/batch_status_handler.h
index 77a32f28..d83f8acc 100644
--- a/ui/batch_status_handler.h
+++ b/ui/batch_status_handler.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef BATCHSTATUSHANDLER_H_INCLUDED
@@ -21,7 +21,7 @@
class BatchAbortProcess {};
-class BatchStatusHandler : public zen::StatusHandler
+class BatchStatusHandler : public zen::StatusHandler //throw BatchAbortProcess
{
public:
BatchStatusHandler(bool showProgress, //defines: -start minimized and -quit immediately when finished
diff --git a/ui/check_version.cpp b/ui/check_version.cpp
index 2a243a27..5bf67b90 100644
--- a/ui/check_version.cpp
+++ b/ui/check_version.cpp
@@ -1,49 +1,65 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "check_version.h"
#include <memory>
+#include <zen/string_tools.h>
+#include <zen/i18n.h>
#include <wx/msgdlg.h>
#include <wx/protocol/http.h>
#include <wx/sstream.h>
-#include "../version/version.h"
#include <wx/utils.h>
#include <wx/timer.h>
-#include <zen/string_tools.h>
#include "msg_popup.h"
+#include "../version/version.h"
#include "../lib/ffs_paths.h"
-#include <zen/i18n.h>
using namespace zen;
-wxString getOnlineVersion() //empty string on error;
+namespace
+{
+enum GetVerResult
+{
+ GET_VER_SUCCESS,
+ GET_VER_NO_CONNECTION, //no internet connection?
+ GET_VER_PAGE_NOT_FOUND //version file seems to have moved! => trigger an update!
+};
+
+GetVerResult getOnlineVersion(wxString& version) //empty string on error;
{
wxWindowDisabler dummy;
wxHTTP webAccess;
- webAccess.SetHeader(L"Content-type", L"text/html; charset=utf-8");
+ webAccess.SetHeader(L"content-type", L"text/html; charset=utf-8");
webAccess.SetTimeout(5); //5 seconds of timeout instead of 10 minutes(WTF are they thinking???)...
- if (webAccess.Connect(L"freefilesync.cvs.sourceforge.net")) //only the server, no pages here yet...
+ if (webAccess.Connect(L"freefilesync.sourceforge.net")) //only the server, no pages here yet...
{
//wxApp::IsMainLoopRunning(); // should return true
- std::unique_ptr<wxInputStream> httpStream(webAccess.GetInputStream(L"/viewvc/freefilesync/version/version.txt"));
+ std::unique_ptr<wxInputStream> httpStream(webAccess.GetInputStream(L"/latest_version.txt"));
//must be deleted BEFORE webAccess is closed
if (httpStream && webAccess.GetError() == wxPROTO_NOERR)
{
- wxString onlineVersion;
- wxStringOutputStream out_stream(&onlineVersion);
- httpStream->Read(out_stream);
- return onlineVersion;
+ wxString tmp;
+ wxStringOutputStream outStream(&tmp);
+ httpStream->Read(outStream);
+ version = tmp;
+ return GET_VER_SUCCESS;
}
+ else
+ return GET_VER_PAGE_NOT_FOUND;
+ }
+ else //check if sourceforge in general is reachable
+ {
+ webAccess.SetTimeout(1);
+ return webAccess.Connect(L"sourceforge.net") ? GET_VER_PAGE_NOT_FOUND : GET_VER_NO_CONNECTION;
}
- return wxString();
}
@@ -59,7 +75,7 @@ std::vector<size_t> parseVersion(const wxString& version)
}
-bool isNewerVersion(const wxString& onlineVersion)
+bool haveNewerVersion(const wxString& onlineVersion)
{
std::vector<size_t> current = parseVersion(zen::currentVersion);
std::vector<size_t> online = parseVersion(onlineVersion);
@@ -70,25 +86,35 @@ bool isNewerVersion(const wxString& onlineVersion)
return std::lexicographical_compare(current.begin(), current.end(),
online .begin(), online .end());
}
+}
void zen::checkForUpdateNow(wxWindow* parent)
{
- const wxString onlineVersion = getOnlineVersion();
- if (onlineVersion.empty())
+ wxString onlineVersion;
+ switch (getOnlineVersion(onlineVersion))
{
- wxMessageBox(_("Unable to connect to sourceforge.net!"), _("Error"), wxOK | wxICON_ERROR, parent);
- return;
- }
-
- if (isNewerVersion(onlineVersion))
- {
- if (showQuestionDlg(parent, ReturnQuestionDlg::BUTTON_YES | ReturnQuestionDlg::BUTTON_CANCEL,
- _("A new version of FreeFileSync is available:") + L" " + onlineVersion + L"\n\n" + _("Download now?")) == ReturnQuestionDlg::BUTTON_YES)
- wxLaunchDefaultBrowser(L"http://sourceforge.net/projects/freefilesync/files/freefilesync/v" + onlineVersion + L"/");
+ case GET_VER_SUCCESS:
+ if (haveNewerVersion(onlineVersion))
+ {
+ if (showQuestionDlg(parent, ReturnQuestionDlg::BUTTON_YES | ReturnQuestionDlg::BUTTON_CANCEL,
+ _("A new version of FreeFileSync is available:") + L" " + onlineVersion + L"\n\n" + _("Download now?")) == ReturnQuestionDlg::BUTTON_YES)
+ wxLaunchDefaultBrowser(L"http://sourceforge.net/projects/freefilesync/files/freefilesync/v" + onlineVersion + L"/");
+ }
+ else
+ wxMessageBox(_("FreeFileSync is up to date!"), _("Information"), wxICON_INFORMATION, parent);
+ break;
+
+ case GET_VER_NO_CONNECTION:
+ wxMessageBox(_("Unable to connect to sourceforge.net!"), _("Error"), wxOK | wxICON_ERROR, parent);
+ break;
+
+ case GET_VER_PAGE_NOT_FOUND:
+ if (showQuestionDlg(parent, ReturnQuestionDlg::BUTTON_YES | ReturnQuestionDlg::BUTTON_CANCEL,
+ _("Current FreeFileSync version number was not found online! Do you want to check manually?")) == ReturnQuestionDlg::BUTTON_YES)
+ wxLaunchDefaultBrowser(L"http://sourceforge.net/projects/freefilesync/");
+ break;
}
- else
- wxMessageBox(_("FreeFileSync is up to date!"), _("Information"), wxICON_INFORMATION, parent);
}
@@ -122,19 +148,30 @@ void zen::checkForUpdatePeriodically(wxWindow* parent, long& lastUpdateCheck)
}
else if (wxGetLocalTime() >= lastUpdateCheck + 7 * 24 * 3600) //check weekly
{
- const wxString onlineVersion = getOnlineVersion();
- if (onlineVersion.empty())
- return; //do not handle error
+ wxString onlineVersion;
+ switch (getOnlineVersion(onlineVersion))
+ {
+ case GET_VER_SUCCESS:
+ lastUpdateCheck = wxGetLocalTime();
+
+ if (haveNewerVersion(onlineVersion))
+ {
+ if (showQuestionDlg(parent, ReturnQuestionDlg::BUTTON_YES | ReturnQuestionDlg::BUTTON_CANCEL,
+ _("A new version of FreeFileSync is available:") + L" " + onlineVersion + L"\n\n" +
+ _("Download now?")) == ReturnQuestionDlg::BUTTON_YES)
+ wxLaunchDefaultBrowser(L"http://sourceforge.net/projects/freefilesync/files/freefilesync/v" + onlineVersion + L"/");
+ }
+ break;
- lastUpdateCheck = wxGetLocalTime();
+ case GET_VER_NO_CONNECTION:
+ break; //ignore this error
- if (isNewerVersion(onlineVersion))
- {
- if (showQuestionDlg(parent, ReturnQuestionDlg::BUTTON_YES | ReturnQuestionDlg::BUTTON_CANCEL,
- _("A new version of FreeFileSync is available:") + L" " + onlineVersion + L"\n\n" + _("Download now?")) == ReturnQuestionDlg::BUTTON_YES)
- wxLaunchDefaultBrowser(L"http://sourceforge.net/projects/freefilesync/files/freefilesync/v" + onlineVersion + L"/");
+ case GET_VER_PAGE_NOT_FOUND:
+ if (showQuestionDlg(parent, ReturnQuestionDlg::BUTTON_YES | ReturnQuestionDlg::BUTTON_CANCEL,
+ _("Current FreeFileSync version number was not found online! Do you want to check manually?")) == ReturnQuestionDlg::BUTTON_YES)
+ wxLaunchDefaultBrowser(L"http://sourceforge.net/projects/freefilesync/");
+ break;
}
}
}
}
-
diff --git a/ui/check_version.h b/ui/check_version.h
index 5c85893e..a61cc98c 100644
--- a/ui/check_version.h
+++ b/ui/check_version.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef UPDATEVERSION_H_INCLUDED
diff --git a/ui/column_attr.h b/ui/column_attr.h
index 414bb483..23cff92c 100644
--- a/ui/column_attr.h
+++ b/ui/column_attr.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef COL_ATTR_HEADER_189467891346732143214
diff --git a/ui/custom_grid.cpp b/ui/custom_grid.cpp
index 9db6a405..13964d9e 100644
--- a/ui/custom_grid.cpp
+++ b/ui/custom_grid.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "custom_grid.h"
@@ -10,10 +10,11 @@
#include <zen/i18n.h>
#include <zen/file_error.h>
#include <zen/basic_math.h>
+#include <zen/format_unit.h>
#include <wx+/tooltip.h>
-#include <wx+/format_unit.h>
#include <wx+/string_conv.h>
#include <wx+/rtl.h>
+#include <wx+/image_tools.h>
#include "../file_hierarchy.h"
#include "../lib/resources.h"
@@ -246,8 +247,8 @@ protected:
const int signLevel = colorDist(backCol, *wxBLACK) < colorDist(backCol, *wxWHITE) ? 1 : -1; //brighten or darken
- const wxColor colOutter = getAdjustedColor(signLevel * 20);
- const wxColor colInner = getAdjustedColor(signLevel * 10);
+ const wxColor colOutter = getAdjustedColor(signLevel * 14); //just some very faint gradient to avoid visual distraction
+ const wxColor colInner = getAdjustedColor(signLevel * 11); //
//clearArea(dc, rect, backColAlt);
@@ -961,10 +962,18 @@ private:
wxRect rectInside = drawColumnLabelBorder(dc, rect);
drawColumnLabelBackground(dc, rectInside, highlighted);
- if (showSyncAction_)
- dc.DrawLabel(wxEmptyString, GlobalResources::getImage(L"syncSmall"), rectInside, wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL);
- else
- dc.DrawLabel(wxEmptyString, GlobalResources::getImage(L"compareSmall"), rectInside, wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL);
+ const wxBitmap& cmpIcon = GlobalResources::getImage(L"compareSmall");
+ const wxBitmap& syncIcon = GlobalResources::getImage(L"syncSmall");
+
+ const int space = 8;
+ const int imageWidthTotal = cmpIcon.GetWidth() + space + syncIcon.GetWidth();
+
+ const int posX = (rectInside.GetWidth () - imageWidthTotal) / 2;
+ const int posY = (rectInside.GetHeight() - cmpIcon.GetHeight()) / 2;
+ assert(cmpIcon.GetHeight() == syncIcon.GetHeight());
+
+ dc.DrawBitmap(showSyncAction_ ? greyScale(cmpIcon) : cmpIcon, posX, posY, true);
+ dc.DrawBitmap(showSyncAction_ ? syncIcon : greyScale(syncIcon), posX + cmpIcon.GetWidth() + space, posY, true);
}
break;
@@ -987,6 +996,7 @@ private:
switch (fsObj->getSyncOperation()) //evaluate comparison result and sync direction
{
case SO_DO_NOTHING:
+ //return COLOR_NOT_ACTIVE;
case SO_EQUAL:
break; //usually white
diff --git a/ui/custom_grid.h b/ui/custom_grid.h
index 8a91e0bc..b5a4cce1 100644
--- a/ui/custom_grid.h
+++ b/ui/custom_grid.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef CUSTOMGRID_H_INCLUDED
diff --git a/ui/dir_name.cpp b/ui/dir_name.cpp
index 493a7642..406903e6 100644
--- a/ui/dir_name.cpp
+++ b/ui/dir_name.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "dir_name.h"
@@ -26,7 +26,8 @@
using namespace zen;
-const wxEventType zen::EVENT_ON_DIR_SELECTED = wxNewEventType();
+const wxEventType zen::EVENT_ON_DIR_SELECTED = wxNewEventType();
+const wxEventType zen::EVENT_ON_DIR_MANUAL_CORRECTION = wxNewEventType();
namespace
{
@@ -150,10 +151,10 @@ void DirectoryName<NameControl>::OnFilesDropped(FileDropEvent& event)
template <class NameControl>
void DirectoryName<NameControl>::OnWriteDirManually(wxCommandEvent& event)
{
- setDirectoryName(event.GetString(), static_cast<NameControl*>(nullptr), dirName_, staticText_); //potentially slow network access: wait 100 ms at most
+ setDirectoryName(event.GetString(), static_cast<NameControl*>(nullptr), dirName_, staticText_);
- //wxCommandEvent dummy(EVENT_ON_DIR_SELECTED); -> don't annoy the user!
- //ProcessEvent(dummy);
+ wxCommandEvent dummy(EVENT_ON_DIR_MANUAL_CORRECTION);
+ ProcessEvent(dummy);
event.Skip();
}
@@ -208,7 +209,7 @@ void DirectoryName<NameControl>::OnSelectDir(wxCommandEvent& event)
#endif
if (!newFolder.get())
{
- wxDirDialog dirPicker(&selectButton_, _("Select a folder"), defaultDirname); //put modal dialog on stack: creating on freestore leads to memleak!
+ wxDirDialog dirPicker(&selectButton_, _("Select a folder"), defaultDirname); //put modal wxWidgets dialogs on stack: creating on freestore leads to memleak!
if (dirPicker.ShowModal() != wxID_OK)
return;
newFolder = make_unique<wxString>(dirPicker.GetPath());
diff --git a/ui/dir_name.h b/ui/dir_name.h
index 3540e087..4d036f9d 100644
--- a/ui/dir_name.h
+++ b/ui/dir_name.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef DRAGANDDROP_H_INCLUDED
@@ -20,13 +20,13 @@ namespace zen
/*
Reasons NOT to use wxDirPickerCtrl, but wxButton instead:
- Crash on GTK 2: http://favapps.wordpress.com/2012/06/11/freefilesync-crash-in-linux-when-syncing-solved/
+ - still uses outdated ::SHBrowseForFolder() (even on Windows 7)
- selection dialog remembers size, but NOT position => if user enlarges window, the next time he opens the dialog it may leap out of visible screen
- - still uses outdated ::SHBrowseForFolder() (Windows 7)
- hard-codes "Browse" button label
*/
-//emit event when directory is changed by the user:
-extern const wxEventType EVENT_ON_DIR_SELECTED;
+extern const wxEventType EVENT_ON_DIR_SELECTED; //directory is changed by the user (except manual type-in)
+extern const wxEventType EVENT_ON_DIR_MANUAL_CORRECTION; //manual type-in
//example: wnd.Connect(EVENT_ON_DIR_SELECTED, wxCommandEventHandler(MyDlg::OnDirSelected), nullptr, this);
template <class NameControl> //NameControl may be wxTextCtrl, FolderHistoryBox
@@ -47,9 +47,9 @@ public:
private:
virtual bool acceptDrop(const std::vector<wxString>& droppedFiles, const wxPoint& clientPos, const wxWindow& wnd) { return true; }; //return true if drop should be processed
- void OnFilesDropped(FileDropEvent& event);
+ void OnFilesDropped (FileDropEvent& event);
void OnWriteDirManually(wxCommandEvent& event);
- void OnSelectDir(wxCommandEvent& event);
+ void OnSelectDir (wxCommandEvent& event);
wxWindow& dropWindow_;
wxWindow* dropWindow2_;
diff --git a/ui/exec_finished_box.cpp b/ui/exec_finished_box.cpp
index 0586e8e5..6d760f77 100644
--- a/ui/exec_finished_box.cpp
+++ b/ui/exec_finished_box.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "exec_finished_box.h"
diff --git a/ui/exec_finished_box.h b/ui/exec_finished_box.h
index b7232711..2a69faef 100644
--- a/ui/exec_finished_box.h
+++ b/ui/exec_finished_box.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef EXEC_FINISHED_BOX_18947773210473214
diff --git a/ui/folder_history_box.cpp b/ui/folder_history_box.cpp
index 528a36ce..2832afed 100644
--- a/ui/folder_history_box.cpp
+++ b/ui/folder_history_box.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "folder_history_box.h"
@@ -46,7 +46,7 @@ FolderHistoryBox::FolderHistoryBox(wxWindow* parent,
Connect(wxEVT_COMMAND_COMBOBOX_CLOSEUP, wxCommandEventHandler(FolderHistoryBox::OnHideDropDown), nullptr, this);
#endif
-Connect(wxEVT_VALIDATE_USER_SELECTION, wxCommandEventHandler(FolderHistoryBox::OnValidateSelection), nullptr, this);
+ Connect(wxEVT_VALIDATE_USER_SELECTION, wxCommandEventHandler(FolderHistoryBox::OnValidateSelection), nullptr, this);
}
@@ -84,7 +84,7 @@ void FolderHistoryBox::setValueAndUpdateList(const wxString& dirname)
//std::sort(tmp.begin(), tmp.end(), LessFilename());
if (!dirList.empty() && !tmp.empty())
- dirList.push_back(toZ(FolderHistory::separationLine()));
+ dirList.push_back(toZ(FolderHistory::separationLine()));
dirList.insert(dirList.end(), tmp.begin(), tmp.end());
}
@@ -105,7 +105,7 @@ void FolderHistoryBox::setValueAndUpdateList(const wxString& dirname)
void FolderHistoryBox::OnSelection(wxCommandEvent& event)
{
- wxCommandEvent dummy2(wxEVT_VALIDATE_USER_SELECTION); //we cannot replace built-in commands at this position in call stack, so defer to a later time!
+ wxCommandEvent dummy2(wxEVT_VALIDATE_USER_SELECTION); //we cannot replace built-in commands at this position in call stack, so defer to a later time!
if (auto handler = GetEventHandler())
handler->AddPendingEvent(dummy2);
@@ -115,7 +115,7 @@ void FolderHistoryBox::OnSelection(wxCommandEvent& event)
void FolderHistoryBox::OnValidateSelection(wxCommandEvent& event)
{
- //const auto& value = GetValue();
+ //const auto& value = GetValue();
//if (value == FolderHistory::separationLine())
// setValueAndUpdateList(wxString()); -> not good enough (resolved folder name not updated)
}
diff --git a/ui/folder_history_box.h b/ui/folder_history_box.h
index 49dec582..f5a4f0dc 100644
--- a/ui/folder_history_box.h
+++ b/ui/folder_history_box.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef CUSTOMCOMBOBOX_H_INCLUDED
@@ -35,7 +35,7 @@ public:
void addItem(const Zstring& dirname)
{
- if (dirname.empty() || dirname == zen::utfCvrtTo<Zstring>(separationLine()))
+ if (dirname.empty() || dirname == zen::utfCvrtTo<Zstring>(separationLine()))
return;
Zstring nameTmp = dirname;
@@ -89,7 +89,7 @@ private:
void OnKeyEvent(wxKeyEvent& event);
void OnMouseWheel(wxMouseEvent& event);
void OnSelection(wxCommandEvent& event);
- void OnValidateSelection(wxCommandEvent& event);
+ void OnValidateSelection(wxCommandEvent& event);
void OnUpdateList(wxEvent& event) { setValueAndUpdateList(GetValue()); event.Skip(); }
void setValueAndUpdateList(const wxString& dirname);
diff --git a/ui/folder_pair.h b/ui/folder_pair.h
index eab07b68..0f8ce3a0 100644
--- a/ui/folder_pair.h
+++ b/ui/folder_pair.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef FOLDERPAIR_H_INCLUDED
@@ -47,8 +47,8 @@ public:
if (altCompConfig.get())
{
setImage(*basicPanel_.m_bpButtonAltCompCfg, GlobalResources::getImage(L"cmpConfigSmall"));
- basicPanel_.m_bpButtonAltCompCfg->SetToolTip(wxString(_("Select alternate comparison settings")) + wxT(" \n") +
- wxT("(") + getVariantName(altCompConfig->compareVar) + wxT(")"));
+ basicPanel_.m_bpButtonAltCompCfg->SetToolTip(_("Select alternate comparison settings") + L" \n" +
+ L"(" + getVariantName(altCompConfig->compareVar) + L")");
}
else
{
@@ -59,8 +59,8 @@ public:
if (altSyncConfig.get())
{
setImage(*basicPanel_.m_bpButtonAltSyncCfg, GlobalResources::getImage(L"syncConfigSmall"));
- basicPanel_.m_bpButtonAltSyncCfg->SetToolTip(wxString(_("Select alternate synchronization settings")) + wxT(" \n") +
- wxT("(") + getVariantName(altSyncConfig->directionCfg.var) + wxT(")"));
+ basicPanel_.m_bpButtonAltSyncCfg->SetToolTip(_("Select alternate synchronization settings") + L" \n" +
+ L"(" + getVariantName(altSyncConfig->directionCfg.var) + L")");
}
else
{
@@ -94,7 +94,7 @@ protected:
basicPanel_.m_bpButtonAltSyncCfg-> Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(FolderPairPanelBasic::OnAltSyncCfg ), nullptr, this);
basicPanel_.m_bpButtonLocalFilter->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(FolderPairPanelBasic::OnLocalFilterCfg), nullptr, this);
- basicPanel_.m_bpButtonRemovePair->SetBitmapLabel(GlobalResources::getImage(L"removeFolderPair"));
+ basicPanel_.m_bpButtonRemovePair->SetBitmapLabel(GlobalResources::getImage(L"item_delete"));
}
virtual void removeAltCompCfg()
diff --git a/ui/grid_view.cpp b/ui/grid_view.cpp
index 5045fca4..31172319 100644
--- a/ui/grid_view.cpp
+++ b/ui/grid_view.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "grid_view.h"
diff --git a/ui/grid_view.h b/ui/grid_view.h
index 0cb5d285..15f248a3 100644
--- a/ui/grid_view.h
+++ b/ui/grid_view.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef GRIDVIEW_H_INCLUDED
diff --git a/ui/gui_generated.cpp b/ui/gui_generated.cpp
index 50c5ea62..2e99377a 100644
--- a/ui/gui_generated.cpp
+++ b/ui/gui_generated.cpp
@@ -11,993 +11,990 @@
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_menuItem10 = new wxMenuItem( m_menuFile, wxID_ANY, wxString( _("1. &Compare") ) + wxT('\t') + wxT("F5"), wxEmptyString, wxITEM_NORMAL );
-#ifdef __WXMSW__
- m_menuItem10->SetBitmaps( wxNullBitmap );
-#elif defined( __WXGTK__ )
- m_menuItem10->SetBitmap( wxNullBitmap );
-#endif
- m_menuFile->Append( m_menuItem10 );
-
- m_menuItem11 = new wxMenuItem( m_menuFile, wxID_ANY, wxString( _("2. &Synchronize") ) + wxT('\t') + wxT("F6"), wxEmptyString, wxITEM_NORMAL );
-#ifdef __WXMSW__
- m_menuItem11->SetBitmaps( wxNullBitmap );
-#elif defined( __WXGTK__ )
- m_menuItem11->SetBitmap( wxNullBitmap );
-#endif
- m_menuFile->Append( m_menuItem11 );
-
- m_menuFile->AppendSeparator();
-
- m_menuItemNew = new wxMenuItem( m_menuFile, wxID_NEW, wxString( _("&New") ) + wxT('\t') + wxT("Ctrl+N"), wxEmptyString, wxITEM_NORMAL );
-#ifdef __WXMSW__
- m_menuItemNew->SetBitmaps( wxNullBitmap );
-#elif defined( __WXGTK__ )
- m_menuItemNew->SetBitmap( wxNullBitmap );
-#endif
- 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_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_menuFile->AppendSeparator();
-
- wxMenuItem* m_menuItem4;
- m_menuItem4 = new wxMenuItem( m_menuFile, wxID_EXIT, wxString( _("&Quit") ) , wxEmptyString, wxITEM_NORMAL );
- m_menuFile->Append( m_menuItem4 );
-
- m_menubar1->Append( m_menuFile, _("&Program") );
-
- m_menuAdvanced = new wxMenu();
- m_menuLanguages = new wxMenu();
- m_menuAdvanced->Append( -1, _("&Language"), m_menuLanguages );
-
- m_menuAdvanced->AppendSeparator();
-
- m_menuItemGlobSett = new wxMenuItem( m_menuAdvanced, wxID_PREFERENCES, wxString( _("&Global settings...") ) , wxEmptyString, wxITEM_NORMAL );
- m_menuAdvanced->Append( m_menuItemGlobSett );
-
- m_menuItem7 = new wxMenuItem( m_menuAdvanced, wxID_ANY, wxString( _("&Create batch job...") ) , wxEmptyString, wxITEM_NORMAL );
- m_menuAdvanced->Append( m_menuItem7 );
-
- wxMenuItem* m_menuItem5;
- m_menuItem5 = new wxMenuItem( m_menuAdvanced, wxID_ANY, wxString( _("&Export file list...") ) , wxEmptyString, wxITEM_NORMAL );
- m_menuAdvanced->Append( m_menuItem5 );
-
- m_menubar1->Append( m_menuAdvanced, _("&Advanced") );
-
- m_menuHelp = new wxMenu();
- m_menuItemManual = new wxMenuItem( m_menuHelp, wxID_HELP, wxString( _("&Content") ) + wxT('\t') + wxT("F1"), wxEmptyString, wxITEM_NORMAL );
- m_menuHelp->Append( m_menuItemManual );
-
- m_menuItemCheckVer = new wxMenuItem( m_menuHelp, wxID_ANY, wxString( _("&Check for new version") ) , wxEmptyString, wxITEM_NORMAL );
- m_menuHelp->Append( m_menuItemCheckVer );
-
- 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, wxRAISED_BORDER|wxTAB_TRAVERSAL );
- bSizerTopButtons = new wxBoxSizer( wxHORIZONTAL );
-
- wxBoxSizer* bSizer155;
- bSizer155 = new wxBoxSizer( wxHORIZONTAL );
-
-
- bSizer155->Add( 15, 0, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- wxFlexGridSizer* fgSizer121;
- fgSizer121 = new wxFlexGridSizer( 2, 2, 0, 0 );
- fgSizer121->SetFlexibleDirection( wxBOTH );
- fgSizer121->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
-
- m_staticTextCmpVariant = new wxStaticText( m_panelTopButtons, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextCmpVariant->Wrap( -1 );
- m_staticTextCmpVariant->SetFont( wxFont( 8, 70, 90, 92, false, wxEmptyString ) );
- m_staticTextCmpVariant->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
-
- fgSizer121->Add( m_staticTextCmpVariant, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxTOP, 1 );
-
-
- fgSizer121->Add( 0, 0, 1, 0, 5 );
-
- wxBoxSizer* bSizer30;
- bSizer30 = new wxBoxSizer( wxHORIZONTAL );
-
- m_buttonCompare = new zen::BitmapButton( m_panelTopButtons, wxID_OK, _("Compare"), wxDefaultPosition, wxSize( 180,42 ), 0 );
- m_buttonCompare->SetDefault();
- m_buttonCompare->SetFont( wxFont( 14, 74, 90, 92, false, wxEmptyString ) );
- m_buttonCompare->SetToolTip( _("Compare both sides") );
-
- bSizer30->Add( m_buttonCompare, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_buttonAbort = new wxButton( m_panelTopButtons, wxID_CANCEL, _("&Abort"), wxDefaultPosition, wxSize( 180,42 ), 0 );
- m_buttonAbort->SetFont( wxFont( 14, 74, 90, 92, false, wxEmptyString ) );
- m_buttonAbort->Enable( false );
- m_buttonAbort->Hide();
-
- bSizer30->Add( m_buttonAbort, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- fgSizer121->Add( bSizer30, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bpButtonCmpConfig = new wxBitmapButton( m_panelTopButtons, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,42 ), wxBU_AUTODRAW );
- m_bpButtonCmpConfig->SetToolTip( _("Comparison settings") );
-
- fgSizer121->Add( m_bpButtonCmpConfig, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 3 );
-
-
- bSizer155->Add( fgSizer121, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM, 5 );
-
-
- bSizerTopButtons->Add( bSizer155, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizerTopButtons->Add( 0, 0, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
- wxBoxSizer* bSizer1551;
- bSizer1551 = new wxBoxSizer( wxHORIZONTAL );
-
- wxFlexGridSizer* fgSizer12;
- fgSizer12 = new wxFlexGridSizer( 2, 2, 0, 0 );
- fgSizer12->SetFlexibleDirection( wxBOTH );
- fgSizer12->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
-
-
- fgSizer12->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_staticTextSyncVariant = new wxStaticText( m_panelTopButtons, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextSyncVariant->Wrap( -1 );
- m_staticTextSyncVariant->SetFont( wxFont( 8, 70, 90, 92, false, wxEmptyString ) );
- m_staticTextSyncVariant->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
-
- fgSizer12->Add( m_staticTextSyncVariant, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxTOP, 1 );
-
- m_bpButtonSyncConfig = new wxBitmapButton( m_panelTopButtons, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,42 ), wxBU_AUTODRAW );
- m_bpButtonSyncConfig->SetToolTip( _("Synchronization settings") );
-
- fgSizer12->Add( m_bpButtonSyncConfig, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 3 );
-
- m_buttonStartSync = new zen::BitmapButton( m_panelTopButtons, wxID_ANY, _("Synchronize"), wxDefaultPosition, wxSize( 180,42 ), 0 );
- m_buttonStartSync->SetFont( wxFont( 14, 74, 90, 92, false, wxEmptyString ) );
- m_buttonStartSync->SetToolTip( _("Start synchronization") );
-
- fgSizer12->Add( m_buttonStartSync, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer1551->Add( fgSizer12, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM, 5 );
-
-
- bSizer1551->Add( 15, 0, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizerTopButtons->Add( bSizer1551, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- m_panelTopButtons->SetSizer( bSizerTopButtons );
- m_panelTopButtons->Layout();
- bSizerTopButtons->Fit( m_panelTopButtons );
- bSizerPanelHolder->Add( m_panelTopButtons, 0, wxALIGN_CENTER_HORIZONTAL|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 ) );
-
- wxBoxSizer* bSizer180;
- bSizer180 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer181;
- bSizer181 = new wxBoxSizer( wxHORIZONTAL );
-
-
- bSizer181->Add( 25, 0, 0, 0, 5 );
-
- m_staticTextFinalPathLeft = new wxStaticText( m_panelTopLeft, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextFinalPathLeft->Wrap( -1 );
- bSizer181->Add( m_staticTextFinalPathLeft, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 2 );
-
-
- bSizer180->Add( bSizer181, 0, 0, 5 );
-
- wxBoxSizer* bSizer182;
- bSizer182 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bpButtonAddPair = new wxBitmapButton( m_panelTopLeft, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 19,21 ), wxBU_AUTODRAW );
- m_bpButtonAddPair->SetToolTip( _("Add folder pair") );
-
- bSizer182->Add( m_bpButtonAddPair, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bpButtonRemovePair = new wxBitmapButton( m_panelTopLeft, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 19,21 ), wxBU_AUTODRAW );
- m_bpButtonRemovePair->SetToolTip( _("Remove folder pair") );
-
- bSizer182->Add( m_bpButtonRemovePair, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_directoryLeft = new FolderHistoryBox( m_panelTopLeft, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
- bSizer182->Add( m_directoryLeft, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_buttonSelectDirLeft = new wxButton( m_panelTopLeft, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
- m_buttonSelectDirLeft->SetToolTip( _("Select a folder") );
-
- bSizer182->Add( m_buttonSelectDirLeft, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer180->Add( bSizer182, 0, wxEXPAND, 5 );
-
-
- m_panelTopLeft->SetSizer( bSizer180 );
- m_panelTopLeft->Layout();
- bSizer180->Fit( m_panelTopLeft );
- bSizer91->Add( m_panelTopLeft, 1, wxLEFT|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
- m_panelTopMiddle = new wxPanel( m_panelDirectoryPairs, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- wxBoxSizer* bSizer93;
- bSizer93 = new wxBoxSizer( wxVERTICAL );
-
-
- bSizer93->Add( 0, 3, 0, 0, 5 );
-
- m_bpButtonSwapSides = new wxBitmapButton( m_panelTopMiddle, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW );
- m_bpButtonSwapSides->SetToolTip( _("Swap sides") );
-
- bSizer93->Add( m_bpButtonSwapSides, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
- wxBoxSizer* bSizer160;
- bSizer160 = new wxBoxSizer( wxHORIZONTAL );
-
-
- bSizer160->Add( 0, 0, 1, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bpButtonAltCompCfg = new wxBitmapButton( m_panelTopMiddle, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 20,20 ), wxBU_AUTODRAW );
- bSizer160->Add( m_bpButtonAltCompCfg, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bpButtonLocalFilter = new wxBitmapButton( m_panelTopMiddle, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 20,20 ), wxBU_AUTODRAW );
- bSizer160->Add( m_bpButtonLocalFilter, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 3 );
-
- m_bpButtonAltSyncCfg = new wxBitmapButton( m_panelTopMiddle, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 20,20 ), wxBU_AUTODRAW );
- bSizer160->Add( m_bpButtonAltSyncCfg, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer160->Add( 0, 0, 1, wxEXPAND, 5 );
-
-
- bSizer93->Add( bSizer160, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
-
-
- m_panelTopMiddle->SetSizer( bSizer93 );
- m_panelTopMiddle->Layout();
- bSizer93->Fit( m_panelTopMiddle );
- bSizer91->Add( m_panelTopMiddle, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|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 );
-
- wxBoxSizer* bSizer184;
- bSizer184 = new wxBoxSizer( wxHORIZONTAL );
-
-
- bSizer184->Add( 25, 0, 0, 0, 5 );
-
- m_staticTextFinalPathRight = new wxStaticText( m_panelTopRight, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextFinalPathRight->Wrap( -1 );
- bSizer184->Add( m_staticTextFinalPathRight, 0, wxTOP|wxBOTTOM|wxALIGN_CENTER_VERTICAL, 2 );
-
-
- bSizer183->Add( bSizer184, 0, 0, 5 );
-
- wxBoxSizer* bSizer179;
- bSizer179 = new wxBoxSizer( wxHORIZONTAL );
-
- m_directoryRight = new FolderHistoryBox( m_panelTopRight, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
- bSizer179->Add( m_directoryRight, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_buttonSelectDirRight = new wxButton( m_panelTopRight, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
- m_buttonSelectDirRight->SetToolTip( _("Select a folder") );
-
- bSizer179->Add( m_buttonSelectDirRight, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer183->Add( bSizer179, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
-
- m_panelTopRight->SetSizer( bSizer183 );
- m_panelTopRight->Layout();
- bSizer183->Fit( m_panelTopRight );
- bSizer91->Add( m_panelTopRight, 1, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxEXPAND, 5 );
-
-
- bSizer1601->Add( bSizer91, 0, wxEXPAND, 5 );
-
- m_scrolledWindowFolderPairs = new wxScrolledWindow( m_panelDirectoryPairs, wxID_ANY, wxDefaultPosition, wxSize( -1,-1 ), wxHSCROLL|wxVSCROLL );
- m_scrolledWindowFolderPairs->SetScrollRate( 5, 5 );
- 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, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
-
- m_panelDirectoryPairs->SetSizer( bSizer1601 );
- m_panelDirectoryPairs->Layout();
- bSizer1601->Fit( m_panelDirectoryPairs );
- bSizerPanelHolder->Add( m_panelDirectoryPairs, 0, wxALIGN_CENTER_HORIZONTAL|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 ) );
- 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( 10, 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 );
-
-
- bSizer451->Add( bSizer53, 1, wxALIGN_BOTTOM|wxEXPAND, 5 );
-
- m_staticline9 = new wxStaticLine( m_panelStatusBar, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizer451->Add( m_staticline9, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxEXPAND, 2 );
-
-
- bSizer451->Add( 26, 0, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_staticTextStatusMiddle = new wxStaticText( m_panelStatusBar, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextStatusMiddle->Wrap( -1 );
- m_staticTextStatusMiddle->SetFont( wxFont( 8, 70, 90, 92, false, wxEmptyString ) );
-
- bSizer451->Add( m_staticTextStatusMiddle, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer451->Add( 26, 0, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_staticline10 = new wxStaticLine( m_panelStatusBar, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizer451->Add( m_staticline10, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|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( 10, 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 );
-
-
- bSizer451->Add( bSizer52, 1, wxALIGN_BOTTOM|wxEXPAND, 5 );
-
-
- m_panelStatusBar->SetSizer( bSizer451 );
- m_panelStatusBar->Layout();
- bSizer451->Fit( m_panelStatusBar );
- bSizer1711->Add( m_panelStatusBar, 0, wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
-
-
- m_panelCenter->SetSizer( bSizer1711 );
- m_panelCenter->Layout();
- bSizer1711->Fit( m_panelCenter );
- bSizerPanelHolder->Add( m_panelCenter, 1, wxEXPAND, 5 );
-
- m_panelConfig = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- bSizerConfig = new wxBoxSizer( wxHORIZONTAL );
-
- wxBoxSizer* bSizer151;
- bSizer151 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bpButtonLoad = new wxBitmapButton( m_panelConfig, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 40,40 ), wxBU_AUTODRAW );
- m_bpButtonLoad->SetToolTip( _("Load configuration from file") );
-
- bSizer151->Add( m_bpButtonLoad, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bpButtonSave = new wxBitmapButton( m_panelConfig, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 40,40 ), wxBU_AUTODRAW );
- m_bpButtonSave->SetToolTip( _("Save current configuration to file") );
-
- bSizer151->Add( m_bpButtonSave, 0, wxALIGN_CENTER_VERTICAL, 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|wxLB_SORT );
- m_listBoxHistory->SetToolTip( _("Last used configurations (press DEL to remove from list)") );
- m_listBoxHistory->SetMinSize( wxSize( -1,40 ) );
-
- bSizerConfig->Add( m_listBoxHistory, 1, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- m_panelConfig->SetSizer( bSizerConfig );
- m_panelConfig->Layout();
- bSizerConfig->Fit( m_panelConfig );
- bSizerPanelHolder->Add( m_panelConfig, 0, 0, 5 );
-
- m_panelFilter = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- wxBoxSizer* bSizer171;
- bSizer171 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bpButtonFilter = new wxBitmapButton( m_panelFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 40,40 ), wxBU_AUTODRAW|wxFULL_REPAINT_ON_RESIZE );
- bSizer171->Add( m_bpButtonFilter, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
-
- m_checkBoxShowExcluded = new wxCheckBox( m_panelFilter, wxID_ANY, _("Show excluded items"), wxDefaultPosition, wxDefaultSize, 0 );
- m_checkBoxShowExcluded->SetToolTip( _("Show filtered or temporarily excluded files") );
-
- bSizer171->Add( m_checkBoxShowExcluded, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- m_panelFilter->SetSizer( bSizer171 );
- m_panelFilter->Layout();
- bSizer171->Fit( m_panelFilter );
- bSizerPanelHolder->Add( m_panelFilter, 0, 0, 5 );
-
- m_panelStatistics = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- bSizer1801 = new wxBoxSizer( wxHORIZONTAL );
-
-
- bSizer1801->Add( 0, 0, 1, wxEXPAND, 5 );
-
- bSizerStatistics = new wxBoxSizer( wxHORIZONTAL );
-
- 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, wxALIGN_CENTER_VERTICAL|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 overwritten") );
-
- 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 overwritten") );
-
- bSizer172->Add( m_staticTextUpdateLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
-
- bSizerStatistics->Add( bSizer172, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
-
- bSizerStatistics->Add( 5, 5, 0, 0, 5 );
-
- 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, wxALIGN_CENTER_VERTICAL|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, wxALIGN_CENTER_VERTICAL|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, wxALIGN_CENTER_VERTICAL|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 overwritten") );
-
- 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 overwritten") );
-
- bSizer177->Add( m_staticTextUpdateRight, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizerStatistics->Add( bSizer177, 0, wxALIGN_CENTER_VERTICAL|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, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
-
- bSizer1801->Add( bSizerStatistics, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer1801->Add( 0, 0, 1, wxEXPAND, 5 );
-
-
- m_panelStatistics->SetSizer( bSizer1801 );
- m_panelStatistics->Layout();
- bSizer1801->Fit( m_panelStatistics );
- bSizerPanelHolder->Add( m_panelStatistics, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_panelViewFilter = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- bSizerViewFilter = new wxBoxSizer( wxHORIZONTAL );
-
-
- bSizerViewFilter->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_bpButtonSyncCreateLeft = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 40,40 ), wxBU_AUTODRAW );
- bSizerViewFilter->Add( m_bpButtonSyncCreateLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bpButtonSyncDirOverwLeft = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 40,40 ), wxBU_AUTODRAW );
- bSizerViewFilter->Add( m_bpButtonSyncDirOverwLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bpButtonSyncDeleteLeft = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 40,40 ), wxBU_AUTODRAW );
- bSizerViewFilter->Add( m_bpButtonSyncDeleteLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bpButtonLeftOnly = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 40,40 ), wxBU_AUTODRAW );
- bSizerViewFilter->Add( m_bpButtonLeftOnly, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bpButtonLeftNewer = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 40,40 ), wxBU_AUTODRAW );
- bSizerViewFilter->Add( m_bpButtonLeftNewer, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bpButtonEqual = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 40,40 ), wxBU_AUTODRAW );
- bSizerViewFilter->Add( m_bpButtonEqual, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bpButtonDifferent = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 40,40 ), wxBU_AUTODRAW );
- bSizerViewFilter->Add( m_bpButtonDifferent, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bpButtonSyncDirNone = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 40,40 ), wxBU_AUTODRAW );
- bSizerViewFilter->Add( m_bpButtonSyncDirNone, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bpButtonRightNewer = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 40,40 ), wxBU_AUTODRAW );
- bSizerViewFilter->Add( m_bpButtonRightNewer, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bpButtonRightOnly = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 40,40 ), wxBU_AUTODRAW );
- bSizerViewFilter->Add( m_bpButtonRightOnly, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bpButtonSyncDeleteRight = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 40,40 ), wxBU_AUTODRAW );
- bSizerViewFilter->Add( m_bpButtonSyncDeleteRight, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bpButtonSyncDirOverwRight = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 40,40 ), wxBU_AUTODRAW );
- bSizerViewFilter->Add( m_bpButtonSyncDirOverwRight, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bpButtonSyncCreateRight = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 40,40 ), wxBU_AUTODRAW );
- bSizerViewFilter->Add( m_bpButtonSyncCreateRight, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bpButtonConflict = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 40,40 ), wxBU_AUTODRAW );
- bSizerViewFilter->Add( m_bpButtonConflict, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
-
- bSizerViewFilter->Add( 0, 0, 1, wxEXPAND, 5 );
-
-
- m_panelViewFilter->SetSizer( bSizerViewFilter );
- m_panelViewFilter->Layout();
- bSizerViewFilter->Fit( m_panelViewFilter );
- bSizerPanelHolder->Add( m_panelViewFilter, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- this->SetSizer( bSizerPanelHolder );
- this->Layout();
-
- // Connect Events
- this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( MainDialogGenerated::OnClose ) );
- this->Connect( m_menuItem10->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnCompare ) );
- this->Connect( m_menuItem11->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnStartSync ) );
- 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_menuItem4->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnMenuQuit ) );
- this->Connect( m_menuItemGlobSett->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnMenuGlobalSettings ) );
- this->Connect( m_menuItem7->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnMenuBatchJob ) );
- this->Connect( m_menuItem5->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnMenuExportFileList ) );
- this->Connect( m_menuItemManual->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnShowHelp ) );
- this->Connect( m_menuItemCheckVer->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnMenuCheckVersion ) );
- 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_bpButtonSyncConfig->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnSyncSettings ), NULL, this );
- m_buttonStartSync->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnStartSync ), NULL, this );
- m_bpButtonAddPair->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnAddFolderPair ), NULL, this );
- m_bpButtonRemovePair->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnRemoveTopFolderPair ), NULL, this );
- m_bpButtonSwapSides->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnSwapSides ), NULL, this );
- m_bpButtonLoad->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnConfigLoad ), NULL, this );
- m_bpButtonSave->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnConfigSaveAs ), NULL, this );
- m_listBoxHistory->Connect( wxEVT_CHAR, wxKeyEventHandler( MainDialogGenerated::OnCfgHistoryKeyEvent ), NULL, this );
- m_listBoxHistory->Connect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnLoadFromHistory ), NULL, this );
- m_bpButtonFilter->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnConfigureFilter ), NULL, this );
- m_checkBoxShowExcluded->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnShowExcluded ), NULL, this );
- m_bpButtonSyncCreateLeft->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnSyncCreateLeft ), NULL, this );
- m_bpButtonSyncDirOverwLeft->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnSyncDirLeft ), NULL, this );
- m_bpButtonSyncDeleteLeft->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnSyncDeleteLeft ), NULL, this );
- m_bpButtonLeftOnly->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnLeftOnlyFiles ), NULL, this );
- m_bpButtonLeftNewer->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnLeftNewerFiles ), NULL, this );
- m_bpButtonEqual->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnEqualFiles ), NULL, this );
- m_bpButtonDifferent->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnDifferentFiles ), NULL, this );
- m_bpButtonSyncDirNone->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnSyncDirNone ), NULL, this );
- m_bpButtonRightNewer->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnRightNewerFiles ), NULL, this );
- m_bpButtonRightOnly->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnRightOnlyFiles ), NULL, this );
- m_bpButtonSyncDeleteRight->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnSyncDeleteRight ), NULL, this );
- m_bpButtonSyncDirOverwRight->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnSyncDirRight ), NULL, this );
- m_bpButtonSyncCreateRight->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnSyncCreateRight ), NULL, this );
- m_bpButtonConflict->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnConflictFiles ), 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 );
+ #ifdef __WXMSW__
+ m_menuItemNew->SetBitmaps( wxNullBitmap );
+ #elif defined( __WXGTK__ )
+ m_menuItemNew->SetBitmap( wxNullBitmap );
+ #endif
+ 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_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_menuFile->AppendSeparator();
+
+ m_menuItem10 = new wxMenuItem( m_menuFile, wxID_ANY, wxString( _("1. &Compare") ) + wxT('\t') + wxT("F5"), wxEmptyString, wxITEM_NORMAL );
+ #ifdef __WXMSW__
+ m_menuItem10->SetBitmaps( wxNullBitmap );
+ #elif defined( __WXGTK__ )
+ m_menuItem10->SetBitmap( wxNullBitmap );
+ #endif
+ m_menuFile->Append( m_menuItem10 );
+
+ m_menuItem11 = new wxMenuItem( m_menuFile, wxID_ANY, wxString( _("2. &Synchronize") ) + wxT('\t') + wxT("F6"), wxEmptyString, wxITEM_NORMAL );
+ #ifdef __WXMSW__
+ m_menuItem11->SetBitmaps( wxNullBitmap );
+ #elif defined( __WXGTK__ )
+ m_menuItem11->SetBitmap( wxNullBitmap );
+ #endif
+ m_menuFile->Append( m_menuItem11 );
+
+ m_menuFile->AppendSeparator();
+
+ wxMenuItem* m_menuItem4;
+ m_menuItem4 = new wxMenuItem( m_menuFile, wxID_EXIT, wxString( _("&Quit") ) , wxEmptyString, wxITEM_NORMAL );
+ m_menuFile->Append( m_menuItem4 );
+
+ m_menubar1->Append( m_menuFile, _("&Program") );
+
+ m_menuAdvanced = new wxMenu();
+ m_menuLanguages = new wxMenu();
+ m_menuAdvanced->Append( -1, _("&Language"), m_menuLanguages );
+
+ m_menuAdvanced->AppendSeparator();
+
+ m_menuItemGlobSett = new wxMenuItem( m_menuAdvanced, wxID_PREFERENCES, wxString( _("&Global settings...") ) , wxEmptyString, wxITEM_NORMAL );
+ m_menuAdvanced->Append( m_menuItemGlobSett );
+
+ m_menuItem7 = new wxMenuItem( m_menuAdvanced, wxID_ANY, wxString( _("&Create batch job...") ) , wxEmptyString, wxITEM_NORMAL );
+ m_menuAdvanced->Append( m_menuItem7 );
+
+ wxMenuItem* m_menuItem5;
+ m_menuItem5 = new wxMenuItem( m_menuAdvanced, wxID_ANY, wxString( _("&Export file list...") ) , wxEmptyString, wxITEM_NORMAL );
+ m_menuAdvanced->Append( m_menuItem5 );
+
+ m_menubar1->Append( m_menuAdvanced, _("&Advanced") );
+
+ m_menuHelp = new wxMenu();
+ m_menuItemManual = new wxMenuItem( m_menuHelp, wxID_HELP, wxString( _("&Content") ) + wxT('\t') + wxT("F1"), wxEmptyString, wxITEM_NORMAL );
+ m_menuHelp->Append( m_menuItemManual );
+
+ m_menuItemCheckVer = new wxMenuItem( m_menuHelp, wxID_ANY, wxString( _("&Check for new version") ) , wxEmptyString, wxITEM_NORMAL );
+ m_menuHelp->Append( m_menuItemCheckVer );
+
+ 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, wxRAISED_BORDER|wxTAB_TRAVERSAL );
+ bSizerTopButtons = new wxBoxSizer( wxHORIZONTAL );
+
+ wxBoxSizer* bSizer155;
+ bSizer155 = new wxBoxSizer( wxHORIZONTAL );
+
+
+ bSizer155->Add( 15, 0, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ wxFlexGridSizer* fgSizer121;
+ fgSizer121 = new wxFlexGridSizer( 2, 2, 0, 0 );
+ fgSizer121->SetFlexibleDirection( wxBOTH );
+ fgSizer121->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+
+ m_staticTextCmpVariant = new wxStaticText( m_panelTopButtons, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextCmpVariant->Wrap( -1 );
+ m_staticTextCmpVariant->SetFont( wxFont( 8, 70, 90, 92, false, wxEmptyString ) );
+ m_staticTextCmpVariant->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+
+ fgSizer121->Add( m_staticTextCmpVariant, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxTOP, 1 );
+
+
+ fgSizer121->Add( 0, 0, 1, 0, 5 );
+
+ wxBoxSizer* bSizer30;
+ bSizer30 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_buttonCompare = new zen::BitmapButton( m_panelTopButtons, wxID_OK, _("Compare"), wxDefaultPosition, wxSize( 180,46 ), 0 );
+ m_buttonCompare->SetDefault();
+ m_buttonCompare->SetFont( wxFont( 14, 74, 90, 92, false, wxEmptyString ) );
+ m_buttonCompare->SetToolTip( _("Compare both sides") );
+
+ bSizer30->Add( m_buttonCompare, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_buttonAbort = new wxButton( m_panelTopButtons, wxID_CANCEL, _("&Abort"), wxDefaultPosition, wxSize( 180,42 ), 0 );
+ m_buttonAbort->SetFont( wxFont( 14, 74, 90, 92, false, wxEmptyString ) );
+ m_buttonAbort->Enable( false );
+ m_buttonAbort->Hide();
+
+ bSizer30->Add( m_buttonAbort, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ fgSizer121->Add( bSizer30, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bpButtonCmpConfig = new wxBitmapButton( m_panelTopButtons, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,46 ), wxBU_AUTODRAW );
+ m_bpButtonCmpConfig->SetToolTip( _("Comparison settings") );
+
+ fgSizer121->Add( m_bpButtonCmpConfig, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 3 );
+
+
+ bSizer155->Add( fgSizer121, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM, 5 );
+
+
+ bSizerTopButtons->Add( bSizer155, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizerTopButtons->Add( 0, 0, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+ wxBoxSizer* bSizer1551;
+ bSizer1551 = new wxBoxSizer( wxHORIZONTAL );
+
+ wxFlexGridSizer* fgSizer12;
+ fgSizer12 = new wxFlexGridSizer( 2, 2, 0, 0 );
+ fgSizer12->SetFlexibleDirection( wxBOTH );
+ fgSizer12->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+
+
+ fgSizer12->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_staticTextSyncVariant = new wxStaticText( m_panelTopButtons, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextSyncVariant->Wrap( -1 );
+ m_staticTextSyncVariant->SetFont( wxFont( 8, 70, 90, 92, false, wxEmptyString ) );
+ m_staticTextSyncVariant->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+
+ fgSizer12->Add( m_staticTextSyncVariant, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxTOP, 1 );
+
+ m_bpButtonSyncConfig = new wxBitmapButton( m_panelTopButtons, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,46 ), wxBU_AUTODRAW );
+ m_bpButtonSyncConfig->SetToolTip( _("Synchronization settings") );
+
+ fgSizer12->Add( m_bpButtonSyncConfig, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 3 );
+
+ m_buttonStartSync = new zen::BitmapButton( m_panelTopButtons, wxID_ANY, _("Synchronize"), wxDefaultPosition, wxSize( 180,46 ), 0 );
+ m_buttonStartSync->SetFont( wxFont( 14, 74, 90, 92, false, wxEmptyString ) );
+ m_buttonStartSync->SetToolTip( _("Start synchronization") );
+
+ fgSizer12->Add( m_buttonStartSync, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer1551->Add( fgSizer12, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM, 5 );
+
+
+ bSizer1551->Add( 15, 0, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizerTopButtons->Add( bSizer1551, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ m_panelTopButtons->SetSizer( bSizerTopButtons );
+ m_panelTopButtons->Layout();
+ bSizerTopButtons->Fit( m_panelTopButtons );
+ bSizerPanelHolder->Add( m_panelTopButtons, 0, wxALIGN_CENTER_HORIZONTAL|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 ) );
+
+ wxBoxSizer* bSizer180;
+ bSizer180 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer181;
+ bSizer181 = new wxBoxSizer( wxHORIZONTAL );
+
+
+ bSizer181->Add( 25, 0, 0, 0, 5 );
+
+ m_staticTextFinalPathLeft = new wxStaticText( m_panelTopLeft, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextFinalPathLeft->Wrap( -1 );
+ bSizer181->Add( m_staticTextFinalPathLeft, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 2 );
+
+
+ bSizer180->Add( bSizer181, 0, 0, 5 );
+
+
+ bSizer180->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer182;
+ bSizer182 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bpButtonAddPair = new wxBitmapButton( m_panelTopLeft, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 23,23 ), wxBU_AUTODRAW );
+ m_bpButtonAddPair->SetToolTip( _("Add folder pair") );
+
+ bSizer182->Add( m_bpButtonAddPair, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bpButtonRemovePair = new wxBitmapButton( m_panelTopLeft, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 23,23 ), wxBU_AUTODRAW );
+ m_bpButtonRemovePair->SetToolTip( _("Remove folder pair") );
+
+ bSizer182->Add( m_bpButtonRemovePair, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_directoryLeft = new FolderHistoryBox( m_panelTopLeft, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
+ bSizer182->Add( m_directoryLeft, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_buttonSelectDirLeft = new wxButton( m_panelTopLeft, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_buttonSelectDirLeft->SetToolTip( _("Select a folder") );
+
+ bSizer182->Add( m_buttonSelectDirLeft, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer180->Add( bSizer182, 0, wxEXPAND, 5 );
+
+
+ m_panelTopLeft->SetSizer( bSizer180 );
+ m_panelTopLeft->Layout();
+ bSizer180->Fit( m_panelTopLeft );
+ bSizer91->Add( m_panelTopLeft, 1, wxLEFT|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+ m_panelTopMiddle = new wxPanel( m_panelDirectoryPairs, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ wxBoxSizer* bSizer1771;
+ bSizer1771 = new wxBoxSizer( wxVERTICAL );
+
+ m_bpButtonSwapSides = new wxBitmapButton( m_panelTopMiddle, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW );
+ m_bpButtonSwapSides->SetToolTip( _("Swap sides") );
+
+ bSizer1771->Add( m_bpButtonSwapSides, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer160;
+ bSizer160 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bpButtonAltCompCfg = new wxBitmapButton( m_panelTopMiddle, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 22,22 ), wxBU_AUTODRAW );
+ bSizer160->Add( m_bpButtonAltCompCfg, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bpButtonLocalFilter = new wxBitmapButton( m_panelTopMiddle, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 22,22 ), wxBU_AUTODRAW );
+ bSizer160->Add( m_bpButtonLocalFilter, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 3 );
+
+ m_bpButtonAltSyncCfg = new wxBitmapButton( m_panelTopMiddle, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 22,22 ), wxBU_AUTODRAW );
+ bSizer160->Add( m_bpButtonAltSyncCfg, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer1771->Add( bSizer160, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
+
+
+ m_panelTopMiddle->SetSizer( bSizer1771 );
+ m_panelTopMiddle->Layout();
+ bSizer1771->Fit( m_panelTopMiddle );
+ bSizer91->Add( m_panelTopMiddle, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|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 );
+
+ wxBoxSizer* bSizer184;
+ bSizer184 = new wxBoxSizer( wxHORIZONTAL );
+
+
+ bSizer184->Add( 25, 0, 0, 0, 5 );
+
+ m_staticTextFinalPathRight = new wxStaticText( m_panelTopRight, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextFinalPathRight->Wrap( -1 );
+ bSizer184->Add( m_staticTextFinalPathRight, 0, wxTOP|wxBOTTOM|wxALIGN_CENTER_VERTICAL, 2 );
+
+
+ bSizer183->Add( bSizer184, 0, 0, 5 );
+
+
+ bSizer183->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer179;
+ bSizer179 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_directoryRight = new FolderHistoryBox( m_panelTopRight, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
+ bSizer179->Add( m_directoryRight, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_buttonSelectDirRight = new wxButton( m_panelTopRight, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_buttonSelectDirRight->SetToolTip( _("Select a folder") );
+
+ bSizer179->Add( m_buttonSelectDirRight, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer183->Add( bSizer179, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+
+ m_panelTopRight->SetSizer( bSizer183 );
+ m_panelTopRight->Layout();
+ bSizer183->Fit( m_panelTopRight );
+ bSizer91->Add( m_panelTopRight, 1, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxEXPAND, 5 );
+
+
+ bSizer1601->Add( bSizer91, 0, wxEXPAND, 5 );
+
+ m_scrolledWindowFolderPairs = new wxScrolledWindow( m_panelDirectoryPairs, wxID_ANY, wxDefaultPosition, wxSize( -1,-1 ), wxHSCROLL|wxVSCROLL );
+ m_scrolledWindowFolderPairs->SetScrollRate( 5, 5 );
+ 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, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+
+ m_panelDirectoryPairs->SetSizer( bSizer1601 );
+ m_panelDirectoryPairs->Layout();
+ bSizer1601->Fit( m_panelDirectoryPairs );
+ bSizerPanelHolder->Add( m_panelDirectoryPairs, 0, wxALIGN_CENTER_HORIZONTAL|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 ) );
+ 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( 10, 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 );
+
+
+ bSizer451->Add( bSizer53, 1, wxALIGN_BOTTOM|wxEXPAND, 5 );
+
+ m_staticline9 = new wxStaticLine( m_panelStatusBar, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizer451->Add( m_staticline9, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxEXPAND, 2 );
+
+
+ bSizer451->Add( 26, 0, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_staticTextStatusMiddle = new wxStaticText( m_panelStatusBar, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextStatusMiddle->Wrap( -1 );
+ m_staticTextStatusMiddle->SetFont( wxFont( 8, 70, 90, 92, false, wxEmptyString ) );
+
+ bSizer451->Add( m_staticTextStatusMiddle, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer451->Add( 26, 0, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_staticline10 = new wxStaticLine( m_panelStatusBar, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizer451->Add( m_staticline10, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|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( 10, 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 );
+
+
+ bSizer451->Add( bSizer52, 1, wxALIGN_BOTTOM|wxEXPAND, 5 );
+
+
+ m_panelStatusBar->SetSizer( bSizer451 );
+ m_panelStatusBar->Layout();
+ bSizer451->Fit( m_panelStatusBar );
+ bSizer1711->Add( m_panelStatusBar, 0, wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
+
+
+ m_panelCenter->SetSizer( bSizer1711 );
+ m_panelCenter->Layout();
+ bSizer1711->Fit( m_panelCenter );
+ bSizerPanelHolder->Add( m_panelCenter, 1, wxEXPAND, 5 );
+
+ m_panelConfig = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ bSizerConfig = new wxBoxSizer( wxHORIZONTAL );
+
+ wxBoxSizer* bSizer151;
+ bSizer151 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bpButtonLoad = new wxBitmapButton( m_panelConfig, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ m_bpButtonLoad->SetToolTip( _("Open...") );
+
+ bSizer151->Add( m_bpButtonLoad, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bpButtonSave = new wxBitmapButton( m_panelConfig, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ m_bpButtonSave->SetToolTip( _("Save") );
+
+ bSizer151->Add( m_bpButtonSave, 0, wxALIGN_CENTER_VERTICAL, 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|wxLB_SORT );
+ m_listBoxHistory->SetToolTip( _("Last used configurations (press DEL to remove from list)") );
+ m_listBoxHistory->SetMinSize( wxSize( -1,40 ) );
+
+ bSizerConfig->Add( m_listBoxHistory, 1, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ m_panelConfig->SetSizer( bSizerConfig );
+ m_panelConfig->Layout();
+ bSizerConfig->Fit( m_panelConfig );
+ bSizerPanelHolder->Add( m_panelConfig, 0, 0, 5 );
+
+ m_panelFilter = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ wxBoxSizer* bSizer171;
+ bSizer171 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bpButtonFilter = new wxBitmapButton( m_panelFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW|wxFULL_REPAINT_ON_RESIZE );
+ bSizer171->Add( m_bpButtonFilter, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+
+ m_checkBoxShowExcluded = new wxCheckBox( m_panelFilter, wxID_ANY, _("Show excluded items"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_checkBoxShowExcluded->SetToolTip( _("Show filtered or temporarily excluded files") );
+
+ bSizer171->Add( m_checkBoxShowExcluded, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ m_panelFilter->SetSizer( bSizer171 );
+ m_panelFilter->Layout();
+ bSizer171->Fit( m_panelFilter );
+ bSizerPanelHolder->Add( m_panelFilter, 0, 0, 5 );
+
+ m_panelStatistics = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ bSizer1801 = new wxBoxSizer( wxHORIZONTAL );
+
+
+ bSizer1801->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ bSizerStatistics = new wxBoxSizer( wxHORIZONTAL );
+
+ 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, wxALIGN_CENTER_VERTICAL|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 overwritten") );
+
+ 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 overwritten") );
+
+ bSizer172->Add( m_staticTextUpdateLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+
+ bSizerStatistics->Add( bSizer172, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+
+ bSizerStatistics->Add( 5, 5, 0, 0, 5 );
+
+ 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, wxALIGN_CENTER_VERTICAL|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, wxALIGN_CENTER_VERTICAL|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, wxALIGN_CENTER_VERTICAL|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 overwritten") );
+
+ 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 overwritten") );
+
+ bSizer177->Add( m_staticTextUpdateRight, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizerStatistics->Add( bSizer177, 0, wxALIGN_CENTER_VERTICAL|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, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+
+ bSizer1801->Add( bSizerStatistics, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer1801->Add( 0, 0, 1, wxEXPAND, 5 );
+
+
+ m_panelStatistics->SetSizer( bSizer1801 );
+ m_panelStatistics->Layout();
+ bSizer1801->Fit( m_panelStatistics );
+ bSizerPanelHolder->Add( m_panelStatistics, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_panelViewFilter = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ bSizerViewFilter = new wxBoxSizer( wxHORIZONTAL );
+
+
+ bSizerViewFilter->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_bpButtonSyncCreateLeft = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ bSizerViewFilter->Add( m_bpButtonSyncCreateLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bpButtonSyncDirOverwLeft = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ bSizerViewFilter->Add( m_bpButtonSyncDirOverwLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bpButtonSyncDeleteLeft = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ bSizerViewFilter->Add( m_bpButtonSyncDeleteLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bpButtonLeftOnly = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ bSizerViewFilter->Add( m_bpButtonLeftOnly, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bpButtonLeftNewer = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ bSizerViewFilter->Add( m_bpButtonLeftNewer, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bpButtonEqual = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ bSizerViewFilter->Add( m_bpButtonEqual, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bpButtonDifferent = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ bSizerViewFilter->Add( m_bpButtonDifferent, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bpButtonSyncDirNone = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ bSizerViewFilter->Add( m_bpButtonSyncDirNone, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bpButtonRightNewer = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ bSizerViewFilter->Add( m_bpButtonRightNewer, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bpButtonRightOnly = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ bSizerViewFilter->Add( m_bpButtonRightOnly, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bpButtonSyncDeleteRight = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ bSizerViewFilter->Add( m_bpButtonSyncDeleteRight, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bpButtonSyncDirOverwRight = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ bSizerViewFilter->Add( m_bpButtonSyncDirOverwRight, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bpButtonSyncCreateRight = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ bSizerViewFilter->Add( m_bpButtonSyncCreateRight, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bpButtonConflict = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ bSizerViewFilter->Add( m_bpButtonConflict, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+
+ bSizerViewFilter->Add( 0, 0, 1, wxEXPAND, 5 );
+
+
+ m_panelViewFilter->SetSizer( bSizerViewFilter );
+ m_panelViewFilter->Layout();
+ bSizerViewFilter->Fit( m_panelViewFilter );
+ bSizerPanelHolder->Add( m_panelViewFilter, 0, wxALIGN_CENTER_VERTICAL, 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_menuItem10->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnCompare ) );
+ this->Connect( m_menuItem11->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnStartSync ) );
+ this->Connect( m_menuItem4->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnMenuQuit ) );
+ this->Connect( m_menuItemGlobSett->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnMenuGlobalSettings ) );
+ this->Connect( m_menuItem7->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnMenuBatchJob ) );
+ this->Connect( m_menuItem5->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnMenuExportFileList ) );
+ this->Connect( m_menuItemManual->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnShowHelp ) );
+ this->Connect( m_menuItemCheckVer->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnMenuCheckVersion ) );
+ 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_bpButtonSyncConfig->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnSyncSettings ), NULL, this );
+ m_buttonStartSync->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnStartSync ), NULL, this );
+ m_bpButtonAddPair->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnAddFolderPair ), NULL, this );
+ m_bpButtonRemovePair->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnRemoveTopFolderPair ), NULL, this );
+ m_bpButtonSwapSides->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnSwapSides ), NULL, this );
+ m_bpButtonLoad->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnConfigLoad ), NULL, this );
+ m_bpButtonSave->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnConfigSave ), NULL, this );
+ m_listBoxHistory->Connect( wxEVT_CHAR, wxKeyEventHandler( MainDialogGenerated::OnCfgHistoryKeyEvent ), NULL, this );
+ m_listBoxHistory->Connect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnLoadFromHistory ), NULL, this );
+ m_bpButtonFilter->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnConfigureFilter ), NULL, this );
+ m_checkBoxShowExcluded->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnShowExcluded ), NULL, this );
+ m_bpButtonSyncCreateLeft->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnSyncCreateLeft ), NULL, this );
+ m_bpButtonSyncDirOverwLeft->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnSyncDirLeft ), NULL, this );
+ m_bpButtonSyncDeleteLeft->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnSyncDeleteLeft ), NULL, this );
+ m_bpButtonLeftOnly->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnLeftOnlyFiles ), NULL, this );
+ m_bpButtonLeftNewer->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnLeftNewerFiles ), NULL, this );
+ m_bpButtonEqual->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnEqualFiles ), NULL, this );
+ m_bpButtonDifferent->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnDifferentFiles ), NULL, this );
+ m_bpButtonSyncDirNone->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnSyncDirNone ), NULL, this );
+ m_bpButtonRightNewer->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnRightNewerFiles ), NULL, this );
+ m_bpButtonRightOnly->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnRightOnlyFiles ), NULL, this );
+ m_bpButtonSyncDeleteRight->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnSyncDeleteRight ), NULL, this );
+ m_bpButtonSyncDirOverwRight->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnSyncDirRight ), NULL, this );
+ m_bpButtonSyncCreateRight->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnSyncCreateRight ), NULL, this );
+ m_bpButtonConflict->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnConflictFiles ), NULL, this );
}
MainDialogGenerated::~MainDialogGenerated()
{
- // Disconnect Events
- this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( MainDialogGenerated::OnClose ) );
- this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnCompare ) );
- this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnStartSync ) );
- this->Disconnect( wxID_NEW, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnConfigNew ) );
- this->Disconnect( wxID_OPEN, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnConfigLoad ) );
- this->Disconnect( wxID_SAVE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnConfigSave ) );
- this->Disconnect( wxID_SAVEAS, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnConfigSaveAs ) );
- this->Disconnect( wxID_EXIT, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnMenuQuit ) );
- this->Disconnect( wxID_PREFERENCES, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnMenuGlobalSettings ) );
- this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnMenuBatchJob ) );
- this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnMenuExportFileList ) );
- this->Disconnect( wxID_HELP, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnShowHelp ) );
- this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnMenuCheckVersion ) );
- this->Disconnect( wxID_ABOUT, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnMenuAbout ) );
- m_buttonCompare->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnCompare ), NULL, this );
- m_bpButtonCmpConfig->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnCmpSettings ), NULL, this );
- m_bpButtonSyncConfig->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnSyncSettings ), NULL, this );
- m_buttonStartSync->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnStartSync ), NULL, this );
- m_bpButtonAddPair->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnAddFolderPair ), NULL, this );
- m_bpButtonRemovePair->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnRemoveTopFolderPair ), NULL, this );
- m_bpButtonSwapSides->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnSwapSides ), NULL, this );
- m_bpButtonLoad->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnConfigLoad ), NULL, this );
- m_bpButtonSave->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnConfigSaveAs ), NULL, this );
- m_listBoxHistory->Disconnect( wxEVT_CHAR, wxKeyEventHandler( MainDialogGenerated::OnCfgHistoryKeyEvent ), NULL, this );
- m_listBoxHistory->Disconnect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnLoadFromHistory ), NULL, this );
- m_bpButtonFilter->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnConfigureFilter ), NULL, this );
- m_checkBoxShowExcluded->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnShowExcluded ), NULL, this );
- m_bpButtonSyncCreateLeft->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnSyncCreateLeft ), NULL, this );
- m_bpButtonSyncDirOverwLeft->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnSyncDirLeft ), NULL, this );
- m_bpButtonSyncDeleteLeft->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnSyncDeleteLeft ), NULL, this );
- m_bpButtonLeftOnly->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnLeftOnlyFiles ), NULL, this );
- m_bpButtonLeftNewer->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnLeftNewerFiles ), NULL, this );
- m_bpButtonEqual->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnEqualFiles ), NULL, this );
- m_bpButtonDifferent->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnDifferentFiles ), NULL, this );
- m_bpButtonSyncDirNone->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnSyncDirNone ), NULL, this );
- m_bpButtonRightNewer->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnRightNewerFiles ), NULL, this );
- m_bpButtonRightOnly->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnRightOnlyFiles ), NULL, this );
- m_bpButtonSyncDeleteRight->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnSyncDeleteRight ), NULL, this );
- m_bpButtonSyncDirOverwRight->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnSyncDirRight ), NULL, this );
- m_bpButtonSyncCreateRight->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnSyncCreateRight ), NULL, this );
- m_bpButtonConflict->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnConflictFiles ), NULL, this );
-
+ // Disconnect Events
+ this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( MainDialogGenerated::OnClose ) );
+ this->Disconnect( wxID_NEW, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnConfigNew ) );
+ this->Disconnect( wxID_OPEN, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnConfigLoad ) );
+ this->Disconnect( wxID_SAVE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnConfigSave ) );
+ this->Disconnect( wxID_SAVEAS, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnConfigSaveAs ) );
+ this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnCompare ) );
+ this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnStartSync ) );
+ this->Disconnect( wxID_EXIT, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnMenuQuit ) );
+ this->Disconnect( wxID_PREFERENCES, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnMenuGlobalSettings ) );
+ this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnMenuBatchJob ) );
+ this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnMenuExportFileList ) );
+ this->Disconnect( wxID_HELP, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnShowHelp ) );
+ this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnMenuCheckVersion ) );
+ this->Disconnect( wxID_ABOUT, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnMenuAbout ) );
+ m_buttonCompare->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnCompare ), NULL, this );
+ m_bpButtonCmpConfig->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnCmpSettings ), NULL, this );
+ m_bpButtonSyncConfig->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnSyncSettings ), NULL, this );
+ m_buttonStartSync->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnStartSync ), NULL, this );
+ m_bpButtonAddPair->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnAddFolderPair ), NULL, this );
+ m_bpButtonRemovePair->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnRemoveTopFolderPair ), NULL, this );
+ m_bpButtonSwapSides->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnSwapSides ), NULL, this );
+ m_bpButtonLoad->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnConfigLoad ), NULL, this );
+ m_bpButtonSave->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnConfigSave ), NULL, this );
+ m_listBoxHistory->Disconnect( wxEVT_CHAR, wxKeyEventHandler( MainDialogGenerated::OnCfgHistoryKeyEvent ), NULL, this );
+ m_listBoxHistory->Disconnect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnLoadFromHistory ), NULL, this );
+ m_bpButtonFilter->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnConfigureFilter ), NULL, this );
+ m_checkBoxShowExcluded->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnShowExcluded ), NULL, this );
+ m_bpButtonSyncCreateLeft->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnSyncCreateLeft ), NULL, this );
+ m_bpButtonSyncDirOverwLeft->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnSyncDirLeft ), NULL, this );
+ m_bpButtonSyncDeleteLeft->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnSyncDeleteLeft ), NULL, this );
+ m_bpButtonLeftOnly->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnLeftOnlyFiles ), NULL, this );
+ m_bpButtonLeftNewer->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnLeftNewerFiles ), NULL, this );
+ m_bpButtonEqual->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnEqualFiles ), NULL, this );
+ m_bpButtonDifferent->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnDifferentFiles ), NULL, this );
+ m_bpButtonSyncDirNone->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnSyncDirNone ), NULL, this );
+ m_bpButtonRightNewer->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnRightNewerFiles ), NULL, this );
+ m_bpButtonRightOnly->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnRightOnlyFiles ), NULL, this );
+ m_bpButtonSyncDeleteRight->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnSyncDeleteRight ), NULL, this );
+ m_bpButtonSyncDirOverwRight->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnSyncDirRight ), NULL, this );
+ m_bpButtonSyncCreateRight->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnSyncCreateRight ), NULL, this );
+ m_bpButtonConflict->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnConflictFiles ), NULL, this );
+
}
FolderPairGenerated::FolderPairGenerated( 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_bpButtonRemovePair = new wxBitmapButton( m_panelLeft, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 19,21 ), wxBU_AUTODRAW );
- m_bpButtonRemovePair->SetToolTip( _("Remove folder pair") );
-
- bSizer134->Add( m_bpButtonRemovePair, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_directoryLeft = new FolderHistoryBox( m_panelLeft, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
- bSizer134->Add( m_directoryLeft, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_buttonSelectDirLeft = new wxButton( m_panelLeft, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
- m_buttonSelectDirLeft->SetToolTip( _("Select a folder") );
-
- bSizer134->Add( m_buttonSelectDirLeft, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- m_panelLeft->SetSizer( bSizer134 );
- m_panelLeft->Layout();
- bSizer134->Fit( m_panelLeft );
- bSizer74->Add( m_panelLeft, 0, wxALIGN_CENTER_VERTICAL|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( 20,20 ), wxBU_AUTODRAW );
- bSizer95->Add( m_bpButtonAltCompCfg, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bpButtonLocalFilter = new wxBitmapButton( m_panel20, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 20,20 ), wxBU_AUTODRAW );
- bSizer95->Add( m_bpButtonLocalFilter, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 3 );
-
- m_bpButtonAltSyncCfg = new wxBitmapButton( m_panel20, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 20,20 ), 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, wxALIGN_CENTER_VERTICAL|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_directoryRight = new FolderHistoryBox( m_panelRight, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
- bSizer135->Add( m_directoryRight, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_buttonSelectDirRight = new wxButton( m_panelRight, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
- m_buttonSelectDirRight->SetToolTip( _("Select a folder") );
-
- bSizer135->Add( m_buttonSelectDirRight, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- m_panelRight->SetSizer( bSizer135 );
- m_panelRight->Layout();
- bSizer135->Fit( m_panelRight );
- bSizer74->Add( m_panelRight, 1, wxALIGN_CENTER_VERTICAL|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_bpButtonRemovePair = new wxBitmapButton( m_panelLeft, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 23,23 ), wxBU_AUTODRAW );
+ m_bpButtonRemovePair->SetToolTip( _("Remove folder pair") );
+
+ bSizer134->Add( m_bpButtonRemovePair, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_directoryLeft = new FolderHistoryBox( m_panelLeft, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
+ bSizer134->Add( m_directoryLeft, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_buttonSelectDirLeft = new wxButton( m_panelLeft, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_buttonSelectDirLeft->SetToolTip( _("Select a folder") );
+
+ bSizer134->Add( m_buttonSelectDirLeft, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ m_panelLeft->SetSizer( bSizer134 );
+ m_panelLeft->Layout();
+ bSizer134->Fit( m_panelLeft );
+ bSizer74->Add( m_panelLeft, 0, wxALIGN_CENTER_VERTICAL|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( 22,22 ), wxBU_AUTODRAW );
+ bSizer95->Add( m_bpButtonAltCompCfg, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bpButtonLocalFilter = new wxBitmapButton( m_panel20, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 22,22 ), wxBU_AUTODRAW );
+ bSizer95->Add( m_bpButtonLocalFilter, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 3 );
+
+ m_bpButtonAltSyncCfg = new wxBitmapButton( m_panel20, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 22,22 ), 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, wxALIGN_CENTER_VERTICAL|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_directoryRight = new FolderHistoryBox( m_panelRight, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
+ bSizer135->Add( m_directoryRight, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_buttonSelectDirRight = new wxButton( m_panelRight, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_buttonSelectDirRight->SetToolTip( _("Select a folder") );
+
+ bSizer135->Add( m_buttonSelectDirRight, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ m_panelRight->SetSizer( bSizer135 );
+ m_panelRight->Layout();
+ bSizer135->Fit( m_panelRight );
+ bSizer74->Add( m_panelRight, 1, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxEXPAND, 5 );
+
+
+ this->SetSizer( bSizer74 );
+ this->Layout();
+ bSizer74->Fit( this );
}
FolderPairGenerated::~FolderPairGenerated()
@@ -1006,153 +1003,153 @@ FolderPairGenerated::~FolderPairGenerated()
CompareStatusGenerated::CompareStatusGenerated( 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( wxVERTICAL );
-
-
- bSizer40->Add( 0, 0, 1, wxEXPAND, 5 );
-
- wxBoxSizer* bSizer182;
- bSizer182 = new wxBoxSizer( wxVERTICAL );
-
- m_textCtrlStatus = new wxTextCtrl( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, wxTE_READONLY );
- m_textCtrlStatus->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
-
- bSizer182->Add( m_textCtrlStatus, 0, wxEXPAND, 5 );
-
-
- bSizer40->Add( bSizer182, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
-
- m_gauge2 = new wxGauge( this, wxID_ANY, 100, wxDefaultPosition, wxSize( -1,14 ), wxGA_HORIZONTAL|wxGA_SMOOTH );
- bSizer40->Add( m_gauge2, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
-
- bSizer42 = new wxBoxSizer( wxHORIZONTAL );
-
- wxBoxSizer* bSizer157;
- bSizer157 = new wxBoxSizer( wxVERTICAL );
-
- bSizerFilesFound = new wxBoxSizer( wxHORIZONTAL );
-
- m_staticText321 = new wxStaticText( this, wxID_ANY, _("Items found:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText321->Wrap( -1 );
- m_staticText321->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
-
- bSizerFilesFound->Add( m_staticText321, 0, wxALIGN_BOTTOM, 5 );
-
- m_staticTextScanned = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextScanned->Wrap( -1 );
- m_staticTextScanned->SetFont( wxFont( 9, 70, 90, 92, false, wxEmptyString ) );
-
- bSizerFilesFound->Add( m_staticTextScanned, 0, wxALIGN_BOTTOM|wxLEFT, 5 );
-
-
- bSizer157->Add( bSizerFilesFound, 0, 0, 5 );
-
- bSizerFilesRemaining = new wxBoxSizer( wxHORIZONTAL );
-
- m_staticText46 = new wxStaticText( this, wxID_ANY, _("Items remaining:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText46->Wrap( -1 );
- m_staticText46->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
-
- bSizerFilesRemaining->Add( m_staticText46, 0, wxALIGN_BOTTOM, 5 );
-
- wxBoxSizer* bSizer154;
- bSizer154 = new wxBoxSizer( wxHORIZONTAL );
-
- m_staticTextFilesRemaining = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextFilesRemaining->Wrap( -1 );
- m_staticTextFilesRemaining->SetFont( wxFont( 9, 70, 90, 92, false, wxEmptyString ) );
-
- bSizer154->Add( m_staticTextFilesRemaining, 0, wxALIGN_BOTTOM, 5 );
-
- m_staticTextDataRemaining = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextDataRemaining->Wrap( -1 );
- m_staticTextDataRemaining->SetFont( wxFont( 9, 70, 90, 90, false, wxEmptyString ) );
-
- bSizer154->Add( m_staticTextDataRemaining, 0, wxALIGN_BOTTOM|wxLEFT, 5 );
-
-
- bSizerFilesRemaining->Add( bSizer154, 0, wxALIGN_BOTTOM|wxLEFT, 5 );
-
-
- bSizer157->Add( bSizerFilesRemaining, 0, 0, 5 );
-
-
- bSizer42->Add( bSizer157, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer42->Add( 0, 0, 1, wxEXPAND, 5 );
-
- sSizerSpeed = new wxBoxSizer( wxHORIZONTAL );
-
- m_staticText104 = new wxStaticText( this, wxID_ANY, _("Speed:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText104->Wrap( -1 );
- m_staticText104->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
-
- sSizerSpeed->Add( m_staticText104, 0, wxALIGN_BOTTOM, 5 );
-
- m_staticTextSpeed = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextSpeed->Wrap( -1 );
- m_staticTextSpeed->SetFont( wxFont( 9, 70, 90, 92, false, wxEmptyString ) );
-
- sSizerSpeed->Add( m_staticTextSpeed, 0, wxLEFT|wxALIGN_BOTTOM, 5 );
-
-
- bSizer42->Add( sSizerSpeed, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer42->Add( 10, 0, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- sSizerTimeRemaining = new wxBoxSizer( wxHORIZONTAL );
-
- m_staticTextTimeRemFixed = new wxStaticText( this, wxID_ANY, _("Time remaining:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextTimeRemFixed->Wrap( -1 );
- m_staticTextTimeRemFixed->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
-
- sSizerTimeRemaining->Add( m_staticTextTimeRemFixed, 0, wxALIGN_BOTTOM, 5 );
-
- m_staticTextRemTime = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextRemTime->Wrap( -1 );
- m_staticTextRemTime->SetFont( wxFont( 9, 70, 90, 92, false, wxEmptyString ) );
-
- sSizerTimeRemaining->Add( m_staticTextRemTime, 0, wxLEFT|wxALIGN_BOTTOM, 5 );
-
-
- bSizer42->Add( sSizerTimeRemaining, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer42->Add( 0, 0, 1, wxEXPAND, 5 );
-
- sSizerTimeElapsed = new wxBoxSizer( wxHORIZONTAL );
-
- wxStaticText* m_staticText37;
- m_staticText37 = new wxStaticText( this, wxID_ANY, _("Time elapsed:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText37->Wrap( -1 );
- m_staticText37->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
-
- sSizerTimeElapsed->Add( m_staticText37, 0, wxALIGN_BOTTOM, 5 );
-
- m_staticTextTimeElapsed = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextTimeElapsed->Wrap( -1 );
- m_staticTextTimeElapsed->SetFont( wxFont( 9, 70, 90, 92, false, wxEmptyString ) );
-
- sSizerTimeElapsed->Add( m_staticTextTimeElapsed, 0, wxLEFT|wxALIGN_BOTTOM, 5 );
-
-
- bSizer42->Add( sSizerTimeElapsed, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer40->Add( bSizer42, 0, wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
-
-
- bSizer40->Add( 0, 0, 1, wxEXPAND, 5 );
-
-
- this->SetSizer( bSizer40 );
- this->Layout();
- bSizer40->Fit( this );
+ this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ wxBoxSizer* bSizer40;
+ bSizer40 = new wxBoxSizer( wxVERTICAL );
+
+
+ bSizer40->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer182;
+ bSizer182 = new wxBoxSizer( wxVERTICAL );
+
+ m_textCtrlStatus = new wxTextCtrl( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, wxTE_READONLY );
+ m_textCtrlStatus->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+
+ bSizer182->Add( m_textCtrlStatus, 0, wxEXPAND, 5 );
+
+
+ bSizer40->Add( bSizer182, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
+
+ m_gauge2 = new wxGauge( this, wxID_ANY, 100, wxDefaultPosition, wxSize( -1,14 ), wxGA_HORIZONTAL|wxGA_SMOOTH );
+ bSizer40->Add( m_gauge2, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
+
+ bSizer42 = new wxBoxSizer( wxHORIZONTAL );
+
+ wxBoxSizer* bSizer157;
+ bSizer157 = new wxBoxSizer( wxVERTICAL );
+
+ bSizerFilesFound = new wxBoxSizer( wxHORIZONTAL );
+
+ m_staticText321 = new wxStaticText( this, wxID_ANY, _("Items found:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText321->Wrap( -1 );
+ m_staticText321->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
+
+ bSizerFilesFound->Add( m_staticText321, 0, wxALIGN_BOTTOM, 5 );
+
+ m_staticTextScanned = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextScanned->Wrap( -1 );
+ m_staticTextScanned->SetFont( wxFont( 9, 70, 90, 92, false, wxEmptyString ) );
+
+ bSizerFilesFound->Add( m_staticTextScanned, 0, wxALIGN_BOTTOM|wxLEFT, 5 );
+
+
+ bSizer157->Add( bSizerFilesFound, 0, 0, 5 );
+
+ bSizerFilesRemaining = new wxBoxSizer( wxHORIZONTAL );
+
+ m_staticText46 = new wxStaticText( this, wxID_ANY, _("Items remaining:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText46->Wrap( -1 );
+ m_staticText46->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
+
+ bSizerFilesRemaining->Add( m_staticText46, 0, wxALIGN_BOTTOM, 5 );
+
+ wxBoxSizer* bSizer154;
+ bSizer154 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_staticTextFilesRemaining = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextFilesRemaining->Wrap( -1 );
+ m_staticTextFilesRemaining->SetFont( wxFont( 9, 70, 90, 92, false, wxEmptyString ) );
+
+ bSizer154->Add( m_staticTextFilesRemaining, 0, wxALIGN_BOTTOM, 5 );
+
+ m_staticTextDataRemaining = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextDataRemaining->Wrap( -1 );
+ m_staticTextDataRemaining->SetFont( wxFont( 9, 70, 90, 90, false, wxEmptyString ) );
+
+ bSizer154->Add( m_staticTextDataRemaining, 0, wxALIGN_BOTTOM|wxLEFT, 5 );
+
+
+ bSizerFilesRemaining->Add( bSizer154, 0, wxALIGN_BOTTOM|wxLEFT, 5 );
+
+
+ bSizer157->Add( bSizerFilesRemaining, 0, 0, 5 );
+
+
+ bSizer42->Add( bSizer157, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer42->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ sSizerSpeed = new wxBoxSizer( wxHORIZONTAL );
+
+ m_staticText104 = new wxStaticText( this, wxID_ANY, _("Speed:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText104->Wrap( -1 );
+ m_staticText104->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
+
+ sSizerSpeed->Add( m_staticText104, 0, wxALIGN_BOTTOM, 5 );
+
+ m_staticTextSpeed = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextSpeed->Wrap( -1 );
+ m_staticTextSpeed->SetFont( wxFont( 9, 70, 90, 92, false, wxEmptyString ) );
+
+ sSizerSpeed->Add( m_staticTextSpeed, 0, wxLEFT|wxALIGN_BOTTOM, 5 );
+
+
+ bSizer42->Add( sSizerSpeed, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer42->Add( 10, 0, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ sSizerTimeRemaining = new wxBoxSizer( wxHORIZONTAL );
+
+ m_staticTextTimeRemFixed = new wxStaticText( this, wxID_ANY, _("Time remaining:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextTimeRemFixed->Wrap( -1 );
+ m_staticTextTimeRemFixed->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
+
+ sSizerTimeRemaining->Add( m_staticTextTimeRemFixed, 0, wxALIGN_BOTTOM, 5 );
+
+ m_staticTextRemTime = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextRemTime->Wrap( -1 );
+ m_staticTextRemTime->SetFont( wxFont( 9, 70, 90, 92, false, wxEmptyString ) );
+
+ sSizerTimeRemaining->Add( m_staticTextRemTime, 0, wxLEFT|wxALIGN_BOTTOM, 5 );
+
+
+ bSizer42->Add( sSizerTimeRemaining, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer42->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ sSizerTimeElapsed = new wxBoxSizer( wxHORIZONTAL );
+
+ wxStaticText* m_staticText37;
+ m_staticText37 = new wxStaticText( this, wxID_ANY, _("Time elapsed:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText37->Wrap( -1 );
+ m_staticText37->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
+
+ sSizerTimeElapsed->Add( m_staticText37, 0, wxALIGN_BOTTOM, 5 );
+
+ m_staticTextTimeElapsed = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextTimeElapsed->Wrap( -1 );
+ m_staticTextTimeElapsed->SetFont( wxFont( 9, 70, 90, 92, false, wxEmptyString ) );
+
+ sSizerTimeElapsed->Add( m_staticTextTimeElapsed, 0, wxLEFT|wxALIGN_BOTTOM, 5 );
+
+
+ bSizer42->Add( sSizerTimeElapsed, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer40->Add( bSizer42, 0, wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
+
+
+ bSizer40->Add( 0, 0, 1, wxEXPAND, 5 );
+
+
+ this->SetSizer( bSizer40 );
+ this->Layout();
+ bSizer40->Fit( this );
}
CompareStatusGenerated::~CompareStatusGenerated()
@@ -1161,559 +1158,559 @@ CompareStatusGenerated::~CompareStatusGenerated()
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( 560,300 ), wxDefaultSize );
-
- wxBoxSizer* bSizer54;
- bSizer54 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer87;
- bSizer87 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bitmap27 = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 40,40 ), 0 );
- bSizer87->Add( m_bitmap27, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
-
- m_panel8 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSIMPLE_BORDER|wxTAB_TRAVERSAL );
- m_panel8->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_3DLIGHT ) );
-
- wxBoxSizer* bSizer72;
- bSizer72 = new wxBoxSizer( wxVERTICAL );
-
- m_staticText56 = new wxStaticText( m_panel8, wxID_ANY, _("Batch job"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText56->Wrap( -1 );
- m_staticText56->SetFont( wxFont( 14, 70, 90, 92, false, wxEmptyString ) );
- m_staticText56->SetForegroundColour( wxColour( 0, 0, 0 ) );
-
- bSizer72->Add( m_staticText56, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
-
- m_panel8->SetSizer( bSizer72 );
- m_panel8->Layout();
- bSizer72->Fit( m_panel8 );
- bSizer87->Add( m_panel8, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
-
- m_staticText44 = new wxStaticText( this, wxID_ANY, _("Create a batch file to automate synchronization. Double-click this file or schedule in your system's task planner: FreeFileSync.exe <job name>.ffs_batch"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText44->Wrap( 480 );
- bSizer87->Add( m_staticText44, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
-
- m_bpButtonHelp = new wxBitmapButton( this, wxID_HELP, wxNullBitmap, wxDefaultPosition, wxSize( 40,40 ), wxBU_AUTODRAW );
- m_bpButtonHelp->SetToolTip( _("Help") );
-
- bSizer87->Add( m_bpButtonHelp, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer54->Add( bSizer87, 0, wxALIGN_CENTER_HORIZONTAL|wxTOP|wxRIGHT|wxLEFT, 5 );
-
- m_notebook1 = new wxNotebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
- m_panelOverview = new wxPanel( m_notebook1, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- wxBoxSizer* bSizer67;
- bSizer67 = new wxBoxSizer( wxHORIZONTAL );
-
- wxBoxSizer* bSizer120;
- bSizer120 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer175;
- bSizer175 = new wxBoxSizer( wxHORIZONTAL );
-
- wxBoxSizer* bSizer1701;
- bSizer1701 = new wxBoxSizer( wxVERTICAL );
-
- wxStaticBoxSizer* sbSizer241;
- sbSizer241 = new wxStaticBoxSizer( new wxStaticBox( m_panelOverview, wxID_ANY, _("Compare") ), wxHORIZONTAL );
-
- m_bpButtonCmpConfig = new wxBitmapButton( m_panelOverview, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,42 ), wxBU_AUTODRAW );
- m_bpButtonCmpConfig->SetToolTip( _("Comparison settings") );
-
- sbSizer241->Add( m_bpButtonCmpConfig, 0, wxALIGN_CENTER_VERTICAL, 3 );
-
-
- sbSizer241->Add( 10, 0, 0, 0, 5 );
-
- m_staticTextCmpVariant = new wxStaticText( m_panelOverview, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextCmpVariant->Wrap( -1 );
- m_staticTextCmpVariant->SetFont( wxFont( 8, 70, 90, 92, false, wxEmptyString ) );
- m_staticTextCmpVariant->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
-
- sbSizer241->Add( m_staticTextCmpVariant, 1, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer1701->Add( sbSizer241, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer175->Add( bSizer1701, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
- wxStaticBoxSizer* sbSizer26;
- sbSizer26 = new wxStaticBoxSizer( new wxStaticBox( m_panelOverview, wxID_ANY, _("Filter files") ), wxHORIZONTAL );
-
-
- sbSizer26->Add( 20, 0, 0, 0, 5 );
-
- m_bpButtonFilter = new wxBitmapButton( m_panelOverview, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 40,40 ), wxBU_AUTODRAW|wxFULL_REPAINT_ON_RESIZE );
- sbSizer26->Add( m_bpButtonFilter, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 15 );
-
-
- sbSizer26->Add( 20, 0, 0, 0, 5 );
-
-
- bSizer175->Add( sbSizer26, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
-
- wxBoxSizer* bSizer171;
- bSizer171 = new wxBoxSizer( wxVERTICAL );
-
- wxStaticBoxSizer* sbSizer252;
- sbSizer252 = new wxStaticBoxSizer( new wxStaticBox( m_panelOverview, wxID_ANY, _("Synchronize") ), wxHORIZONTAL );
-
- m_staticTextSyncVariant = new wxStaticText( m_panelOverview, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextSyncVariant->Wrap( -1 );
- m_staticTextSyncVariant->SetFont( wxFont( 8, 70, 90, 92, false, wxEmptyString ) );
- m_staticTextSyncVariant->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
-
- sbSizer252->Add( m_staticTextSyncVariant, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- sbSizer252->Add( 10, 0, 0, 0, 5 );
-
- m_bpButtonSyncConfig = new wxBitmapButton( m_panelOverview, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,42 ), wxBU_AUTODRAW );
- m_bpButtonSyncConfig->SetToolTip( _("Synchronization settings") );
-
- sbSizer252->Add( m_bpButtonSyncConfig, 0, wxALIGN_CENTER_VERTICAL, 3 );
-
-
- bSizer171->Add( sbSizer252, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
-
-
- bSizer175->Add( bSizer171, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer120->Add( bSizer175, 0, wxEXPAND, 5 );
-
-
- bSizer120->Add( 0, 5, 0, 0, 5 );
-
- m_scrolledWindow6 = new wxScrolledWindow( m_panelOverview, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHSCROLL|wxVSCROLL );
- m_scrolledWindow6->SetScrollRate( 5, 5 );
- wxBoxSizer* bSizer141;
- bSizer141 = new wxBoxSizer( wxVERTICAL );
-
- sbSizerMainPair = new wxBoxSizer( wxHORIZONTAL );
-
- m_panelMainPair = new wxPanel( m_scrolledWindow6, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxDOUBLE_BORDER );
- wxBoxSizer* bSizer147;
- bSizer147 = new wxBoxSizer( wxHORIZONTAL );
-
- wxBoxSizer* bSizer1361;
- bSizer1361 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bpButtonAddPair = new wxBitmapButton( m_panelMainPair, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 19,21 ), wxBU_AUTODRAW );
- m_bpButtonAddPair->SetToolTip( _("Add folder pair") );
-
- bSizer1361->Add( m_bpButtonAddPair, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 3 );
-
- m_bpButtonRemovePair = new wxBitmapButton( m_panelMainPair, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 19,21 ), wxBU_AUTODRAW );
- m_bpButtonRemovePair->SetToolTip( _("Remove folder pair") );
-
- bSizer1361->Add( m_bpButtonRemovePair, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
-
-
- bSizer147->Add( bSizer1361, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- wxBoxSizer* bSizer143;
- bSizer143 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer145;
- bSizer145 = new wxBoxSizer( wxHORIZONTAL );
-
- m_staticText532 = new wxStaticText( m_panelMainPair, wxID_ANY, _("Left"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText532->Wrap( -1 );
- m_staticText532->SetFont( wxFont( 8, 70, 90, 92, false, wxEmptyString ) );
-
- bSizer145->Add( m_staticText532, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer143->Add( bSizer145, 1, 0, 5 );
-
- wxBoxSizer* bSizer146;
- bSizer146 = new wxBoxSizer( wxHORIZONTAL );
-
- m_staticText5411 = new wxStaticText( m_panelMainPair, wxID_ANY, _("Right"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText5411->Wrap( -1 );
- m_staticText5411->SetFont( wxFont( 8, 70, 90, 92, false, wxEmptyString ) );
-
- bSizer146->Add( m_staticText5411, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer143->Add( bSizer146, 1, 0, 5 );
-
-
- bSizer147->Add( bSizer143, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT|wxEXPAND, 5 );
-
-
- m_panelMainPair->SetSizer( bSizer147 );
- m_panelMainPair->Layout();
- bSizer147->Fit( m_panelMainPair );
- sbSizerMainPair->Add( m_panelMainPair, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM, 5 );
-
- wxBoxSizer* bSizer158;
- bSizer158 = new wxBoxSizer( wxVERTICAL );
-
- m_panelLeft = new wxPanel( m_scrolledWindow6, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- wxBoxSizer* bSizer1141;
- bSizer1141 = new wxBoxSizer( wxHORIZONTAL );
-
- m_directoryLeft = new FolderHistoryBox( m_panelLeft, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
- bSizer1141->Add( m_directoryLeft, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_buttonSelectDirLeft = new wxButton( m_panelLeft, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
- m_buttonSelectDirLeft->SetToolTip( _("Select a folder") );
-
- bSizer1141->Add( m_buttonSelectDirLeft, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- m_panelLeft->SetSizer( bSizer1141 );
- m_panelLeft->Layout();
- bSizer1141->Fit( m_panelLeft );
- bSizer158->Add( m_panelLeft, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
- m_panelRight = new wxPanel( m_scrolledWindow6, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- wxBoxSizer* bSizer115;
- bSizer115 = new wxBoxSizer( wxHORIZONTAL );
-
- m_directoryRight = new FolderHistoryBox( m_panelRight, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
- bSizer115->Add( m_directoryRight, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_buttonSelectDirRight = new wxButton( m_panelRight, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
- m_buttonSelectDirRight->SetToolTip( _("Select a folder") );
-
- bSizer115->Add( m_buttonSelectDirRight, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- m_panelRight->SetSizer( bSizer115 );
- m_panelRight->Layout();
- bSizer115->Fit( m_panelRight );
- bSizer158->Add( m_panelRight, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- sbSizerMainPair->Add( bSizer158, 1, wxALIGN_CENTER_VERTICAL|wxBOTTOM, 5 );
-
- wxBoxSizer* bSizer177;
- bSizer177 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bpButtonAltCompCfg = new wxBitmapButton( m_scrolledWindow6, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 20,20 ), wxBU_AUTODRAW );
- bSizer177->Add( m_bpButtonAltCompCfg, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bpButtonLocalFilter = new wxBitmapButton( m_scrolledWindow6, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 20,20 ), wxBU_AUTODRAW );
- bSizer177->Add( m_bpButtonLocalFilter, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 3 );
-
- m_bpButtonAltSyncCfg = new wxBitmapButton( m_scrolledWindow6, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 20,20 ), wxBU_AUTODRAW );
- bSizer177->Add( m_bpButtonAltSyncCfg, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- sbSizerMainPair->Add( bSizer177, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
-
-
- bSizer141->Add( sbSizerMainPair, 0, wxEXPAND, 5 );
-
- bSizerAddFolderPairs = new wxBoxSizer( wxVERTICAL );
-
-
- bSizer141->Add( bSizerAddFolderPairs, 1, wxEXPAND, 5 );
-
-
- m_scrolledWindow6->SetSizer( bSizer141 );
- m_scrolledWindow6->Layout();
- bSizer141->Fit( m_scrolledWindow6 );
- bSizer120->Add( m_scrolledWindow6, 1, wxEXPAND, 5 );
-
-
- bSizer67->Add( bSizer120, 1, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 10 );
-
-
- m_panelOverview->SetSizer( bSizer67 );
- m_panelOverview->Layout();
- bSizer67->Fit( m_panelOverview );
- m_notebook1->AddPage( m_panelOverview, _("Synchronization settings"), true );
- m_panelBatchSettings = new wxPanel( m_notebook1, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- wxBoxSizer* bSizer117;
- bSizer117 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer172;
- bSizer172 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer180;
- bSizer180 = new wxBoxSizer( wxHORIZONTAL );
-
- sbSizerErrorHandling = new wxStaticBoxSizer( new wxStaticBox( m_panelBatchSettings, wxID_ANY, _("Error handling") ), wxHORIZONTAL );
-
- m_toggleBtnErrorIgnore = new wxToggleButton( m_panelBatchSettings, wxID_ANY, _("Ignore"), wxDefaultPosition, wxDefaultSize, 0 );
- m_toggleBtnErrorIgnore->SetToolTip( _("Hide all error and warning messages") );
-
- sbSizerErrorHandling->Add( m_toggleBtnErrorIgnore, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_toggleBtnErrorPopup = new wxToggleButton( m_panelBatchSettings, wxID_ANY, _("Pop-up"), wxDefaultPosition, wxDefaultSize, 0 );
- m_toggleBtnErrorPopup->SetToolTip( _("Show pop-up on errors or warnings") );
-
- sbSizerErrorHandling->Add( m_toggleBtnErrorPopup, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
-
- m_toggleBtnErrorExit = new wxToggleButton( m_panelBatchSettings, wxID_ANY, _("Exit"), wxDefaultPosition, wxDefaultSize, 0 );
- m_toggleBtnErrorExit->SetToolTip( _("Abort synchronization on first error") );
-
- sbSizerErrorHandling->Add( m_toggleBtnErrorExit, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer180->Add( sbSizerErrorHandling, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxEXPAND, 5 );
-
- sbSizerExecFinished = new wxStaticBoxSizer( new wxStaticBox( m_panelBatchSettings, wxID_ANY, _("On completion:") ), wxHORIZONTAL );
-
- m_comboBoxExecFinished = new ExecFinishedBox( m_panelBatchSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
- sbSizerExecFinished->Add( m_comboBoxExecFinished, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer180->Add( sbSizerExecFinished, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
-
- bSizer172->Add( bSizer180, 0, wxEXPAND, 5 );
-
-
- bSizer172->Add( 0, 5, 0, 0, 5 );
-
- m_checkBoxShowProgress = new wxCheckBox( m_panelBatchSettings, wxID_ANY, _("Show progress dialog"), wxDefaultPosition, wxDefaultSize, 0 );
- bSizer172->Add( m_checkBoxShowProgress, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 5 );
-
- m_checkBoxGenerateLogfile = new wxCheckBox( m_panelBatchSettings, wxID_ANY, _("Generate log file"), wxDefaultPosition, wxDefaultSize, 0 );
- bSizer172->Add( m_checkBoxGenerateLogfile, 0, wxEXPAND|wxALL, 5 );
-
- m_panelLogfile = new wxPanel( m_panelBatchSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- wxBoxSizer* bSizer1721;
- bSizer1721 = new wxBoxSizer( wxHORIZONTAL );
-
- m_comboBoxLogfileDir = new FolderHistoryBox( m_panelLogfile, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
- bSizer1721->Add( m_comboBoxLogfileDir, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_buttonSelectLogfileDir = new wxButton( m_panelLogfile, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
- m_buttonSelectLogfileDir->SetToolTip( _("Select folder to save log files") );
-
- bSizer1721->Add( m_buttonSelectLogfileDir, 0, wxALIGN_CENTER_VERTICAL, 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( 50,-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 );
- bSizer172->Add( m_panelLogfile, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
-
- bSizer117->Add( bSizer172, 1, wxEXPAND|wxALL, 10 );
-
-
- m_panelBatchSettings->SetSizer( bSizer117 );
- m_panelBatchSettings->Layout();
- bSizer117->Fit( m_panelBatchSettings );
- m_notebook1->AddPage( m_panelBatchSettings, _("Batch settings"), false );
-
- bSizer54->Add( m_notebook1, 1, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
-
- wxBoxSizer* bSizer68;
- bSizer68 = new wxBoxSizer( wxHORIZONTAL );
-
- m_buttonLoad = new wxButton( this, wxID_OPEN, _("&Open..."), wxDefaultPosition, wxSize( -1,30 ), 0 );
- m_buttonLoad->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
-
- bSizer68->Add( m_buttonLoad, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 );
-
- m_buttonSave = new wxButton( this, wxID_SAVE, _("Save &as..."), wxDefaultPosition, wxSize( -1,30 ), 0 );
- m_buttonSave->SetDefault();
- m_buttonSave->SetFont( wxFont( 10, 70, 90, 92, false, wxEmptyString ) );
-
- bSizer68->Add( m_buttonSave, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
-
- m_button6 = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,30 ), 0 );
- m_button6->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
-
- bSizer68->Add( m_button6, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer54->Add( bSizer68, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
-
-
- this->SetSizer( bSizer54 );
- this->Layout();
- bSizer54->Fit( this );
-
- this->Centre( wxBOTH );
-
- // Connect Events
- this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( BatchDlgGenerated::OnClose ) );
- m_bpButtonHelp->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnHelp ), NULL, this );
- m_bpButtonCmpConfig->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnCmpSettings ), NULL, this );
- m_bpButtonFilter->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnConfigureFilter ), NULL, this );
- m_bpButtonSyncConfig->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnSyncSettings ), NULL, this );
- m_bpButtonAddPair->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnAddFolderPair ), NULL, this );
- m_bpButtonRemovePair->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnRemoveTopFolderPair ), NULL, this );
- m_toggleBtnErrorIgnore->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnErrorIgnore ), NULL, this );
- m_toggleBtnErrorPopup->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnErrorPopup ), NULL, this );
- m_toggleBtnErrorExit->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnErrorExit ), 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_buttonLoad->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnLoadBatchJob ), NULL, this );
- m_buttonSave->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnSaveBatchJob ), NULL, this );
- m_button6->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnCancel ), NULL, this );
+ this->SetSizeHints( wxSize( 560,300 ), wxDefaultSize );
+
+ wxBoxSizer* bSizer54;
+ bSizer54 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer87;
+ bSizer87 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_panel8 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSIMPLE_BORDER|wxTAB_TRAVERSAL );
+ m_panel8->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_3DLIGHT ) );
+
+ wxBoxSizer* bSizer72;
+ bSizer72 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bitmap27 = new wxStaticBitmap( m_panel8, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,40 ), 0 );
+ bSizer72->Add( m_bitmap27, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
+
+ m_staticText56 = new wxStaticText( m_panel8, wxID_ANY, _("Batch job"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText56->Wrap( -1 );
+ m_staticText56->SetFont( wxFont( 14, 70, 90, 92, false, wxEmptyString ) );
+ m_staticText56->SetForegroundColour( wxColour( 0, 0, 0 ) );
+
+ bSizer72->Add( m_staticText56, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+
+
+ m_panel8->SetSizer( bSizer72 );
+ m_panel8->Layout();
+ bSizer72->Fit( m_panel8 );
+ bSizer87->Add( m_panel8, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+
+ m_staticText44 = new wxStaticText( this, wxID_ANY, _("Create a batch file to automate synchronization. Double-click this file or schedule in your system's task planner: FreeFileSync.exe <job name>.ffs_batch"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText44->Wrap( 480 );
+ bSizer87->Add( m_staticText44, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
+
+ m_bpButtonHelp = new wxBitmapButton( this, wxID_HELP, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ m_bpButtonHelp->SetToolTip( _("Help") );
+
+ bSizer87->Add( m_bpButtonHelp, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer54->Add( bSizer87, 0, wxALIGN_CENTER_HORIZONTAL|wxTOP|wxRIGHT|wxLEFT, 5 );
+
+ m_notebook1 = new wxNotebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
+ m_panelOverview = new wxPanel( m_notebook1, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ wxBoxSizer* bSizer67;
+ bSizer67 = new wxBoxSizer( wxHORIZONTAL );
+
+ wxBoxSizer* bSizer120;
+ bSizer120 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer175;
+ bSizer175 = new wxBoxSizer( wxHORIZONTAL );
+
+ wxBoxSizer* bSizer1701;
+ bSizer1701 = new wxBoxSizer( wxVERTICAL );
+
+ wxStaticBoxSizer* sbSizer241;
+ sbSizer241 = new wxStaticBoxSizer( new wxStaticBox( m_panelOverview, wxID_ANY, _("Compare") ), wxHORIZONTAL );
+
+ m_bpButtonCmpConfig = new wxBitmapButton( m_panelOverview, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,46 ), wxBU_AUTODRAW );
+ m_bpButtonCmpConfig->SetToolTip( _("Comparison settings") );
+
+ sbSizer241->Add( m_bpButtonCmpConfig, 0, wxALIGN_CENTER_VERTICAL, 3 );
+
+
+ sbSizer241->Add( 10, 0, 0, 0, 5 );
+
+ m_staticTextCmpVariant = new wxStaticText( m_panelOverview, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextCmpVariant->Wrap( -1 );
+ m_staticTextCmpVariant->SetFont( wxFont( 8, 70, 90, 92, false, wxEmptyString ) );
+ m_staticTextCmpVariant->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+
+ sbSizer241->Add( m_staticTextCmpVariant, 1, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer1701->Add( sbSizer241, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer175->Add( bSizer1701, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+ wxStaticBoxSizer* sbSizer26;
+ sbSizer26 = new wxStaticBoxSizer( new wxStaticBox( m_panelOverview, wxID_ANY, _("Filter files") ), wxHORIZONTAL );
+
+
+ sbSizer26->Add( 20, 0, 0, 0, 5 );
+
+ m_bpButtonFilter = new wxBitmapButton( m_panelOverview, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,46 ), wxBU_AUTODRAW|wxFULL_REPAINT_ON_RESIZE );
+ sbSizer26->Add( m_bpButtonFilter, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 15 );
+
+
+ sbSizer26->Add( 20, 0, 0, 0, 5 );
+
+
+ bSizer175->Add( sbSizer26, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
+
+ wxBoxSizer* bSizer171;
+ bSizer171 = new wxBoxSizer( wxVERTICAL );
+
+ wxStaticBoxSizer* sbSizer252;
+ sbSizer252 = new wxStaticBoxSizer( new wxStaticBox( m_panelOverview, wxID_ANY, _("Synchronize") ), wxHORIZONTAL );
+
+ m_staticTextSyncVariant = new wxStaticText( m_panelOverview, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextSyncVariant->Wrap( -1 );
+ m_staticTextSyncVariant->SetFont( wxFont( 8, 70, 90, 92, false, wxEmptyString ) );
+ m_staticTextSyncVariant->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+
+ sbSizer252->Add( m_staticTextSyncVariant, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ sbSizer252->Add( 10, 0, 0, 0, 5 );
+
+ m_bpButtonSyncConfig = new wxBitmapButton( m_panelOverview, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,46 ), wxBU_AUTODRAW );
+ m_bpButtonSyncConfig->SetToolTip( _("Synchronization settings") );
+
+ sbSizer252->Add( m_bpButtonSyncConfig, 0, wxALIGN_CENTER_VERTICAL, 3 );
+
+
+ bSizer171->Add( sbSizer252, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
+
+
+ bSizer175->Add( bSizer171, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer120->Add( bSizer175, 0, wxEXPAND, 5 );
+
+
+ bSizer120->Add( 0, 5, 0, 0, 5 );
+
+ m_scrolledWindow6 = new wxScrolledWindow( m_panelOverview, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHSCROLL|wxVSCROLL );
+ m_scrolledWindow6->SetScrollRate( 5, 5 );
+ wxBoxSizer* bSizer141;
+ bSizer141 = new wxBoxSizer( wxVERTICAL );
+
+ sbSizerMainPair = new wxBoxSizer( wxHORIZONTAL );
+
+ m_panelMainPair = new wxPanel( m_scrolledWindow6, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxDOUBLE_BORDER );
+ wxBoxSizer* bSizer147;
+ bSizer147 = new wxBoxSizer( wxHORIZONTAL );
+
+ wxBoxSizer* bSizer1361;
+ bSizer1361 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bpButtonAddPair = new wxBitmapButton( m_panelMainPair, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 23,23 ), wxBU_AUTODRAW );
+ m_bpButtonAddPair->SetToolTip( _("Add folder pair") );
+
+ bSizer1361->Add( m_bpButtonAddPair, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 3 );
+
+ m_bpButtonRemovePair = new wxBitmapButton( m_panelMainPair, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 23,23 ), wxBU_AUTODRAW );
+ m_bpButtonRemovePair->SetToolTip( _("Remove folder pair") );
+
+ bSizer1361->Add( m_bpButtonRemovePair, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
+
+
+ bSizer147->Add( bSizer1361, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ wxBoxSizer* bSizer143;
+ bSizer143 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer145;
+ bSizer145 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_staticText532 = new wxStaticText( m_panelMainPair, wxID_ANY, _("Left"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText532->Wrap( -1 );
+ m_staticText532->SetFont( wxFont( 8, 70, 90, 92, false, wxEmptyString ) );
+
+ bSizer145->Add( m_staticText532, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer143->Add( bSizer145, 1, 0, 5 );
+
+ wxBoxSizer* bSizer146;
+ bSizer146 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_staticText5411 = new wxStaticText( m_panelMainPair, wxID_ANY, _("Right"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText5411->Wrap( -1 );
+ m_staticText5411->SetFont( wxFont( 8, 70, 90, 92, false, wxEmptyString ) );
+
+ bSizer146->Add( m_staticText5411, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer143->Add( bSizer146, 1, 0, 5 );
+
+
+ bSizer147->Add( bSizer143, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT|wxEXPAND, 5 );
+
+
+ m_panelMainPair->SetSizer( bSizer147 );
+ m_panelMainPair->Layout();
+ bSizer147->Fit( m_panelMainPair );
+ sbSizerMainPair->Add( m_panelMainPair, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM, 5 );
+
+ wxBoxSizer* bSizer158;
+ bSizer158 = new wxBoxSizer( wxVERTICAL );
+
+ m_panelLeft = new wxPanel( m_scrolledWindow6, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ wxBoxSizer* bSizer1141;
+ bSizer1141 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_directoryLeft = new FolderHistoryBox( m_panelLeft, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
+ bSizer1141->Add( m_directoryLeft, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_buttonSelectDirLeft = new wxButton( m_panelLeft, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_buttonSelectDirLeft->SetToolTip( _("Select a folder") );
+
+ bSizer1141->Add( m_buttonSelectDirLeft, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ m_panelLeft->SetSizer( bSizer1141 );
+ m_panelLeft->Layout();
+ bSizer1141->Fit( m_panelLeft );
+ bSizer158->Add( m_panelLeft, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+ m_panelRight = new wxPanel( m_scrolledWindow6, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ wxBoxSizer* bSizer115;
+ bSizer115 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_directoryRight = new FolderHistoryBox( m_panelRight, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
+ bSizer115->Add( m_directoryRight, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_buttonSelectDirRight = new wxButton( m_panelRight, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_buttonSelectDirRight->SetToolTip( _("Select a folder") );
+
+ bSizer115->Add( m_buttonSelectDirRight, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ m_panelRight->SetSizer( bSizer115 );
+ m_panelRight->Layout();
+ bSizer115->Fit( m_panelRight );
+ bSizer158->Add( m_panelRight, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ sbSizerMainPair->Add( bSizer158, 1, wxALIGN_CENTER_VERTICAL|wxBOTTOM, 5 );
+
+ wxBoxSizer* bSizer177;
+ bSizer177 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bpButtonAltCompCfg = new wxBitmapButton( m_scrolledWindow6, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 22,22 ), wxBU_AUTODRAW );
+ bSizer177->Add( m_bpButtonAltCompCfg, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bpButtonLocalFilter = new wxBitmapButton( m_scrolledWindow6, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 22,22 ), wxBU_AUTODRAW );
+ bSizer177->Add( m_bpButtonLocalFilter, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 3 );
+
+ m_bpButtonAltSyncCfg = new wxBitmapButton( m_scrolledWindow6, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 22,22 ), wxBU_AUTODRAW );
+ bSizer177->Add( m_bpButtonAltSyncCfg, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ sbSizerMainPair->Add( bSizer177, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
+
+
+ bSizer141->Add( sbSizerMainPair, 0, wxEXPAND, 5 );
+
+ bSizerAddFolderPairs = new wxBoxSizer( wxVERTICAL );
+
+
+ bSizer141->Add( bSizerAddFolderPairs, 1, wxEXPAND, 5 );
+
+
+ m_scrolledWindow6->SetSizer( bSizer141 );
+ m_scrolledWindow6->Layout();
+ bSizer141->Fit( m_scrolledWindow6 );
+ bSizer120->Add( m_scrolledWindow6, 1, wxEXPAND, 5 );
+
+
+ bSizer67->Add( bSizer120, 1, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 10 );
+
+
+ m_panelOverview->SetSizer( bSizer67 );
+ m_panelOverview->Layout();
+ bSizer67->Fit( m_panelOverview );
+ m_notebook1->AddPage( m_panelOverview, _("Synchronization settings"), true );
+ m_panelBatchSettings = new wxPanel( m_notebook1, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ wxBoxSizer* bSizer117;
+ bSizer117 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer172;
+ bSizer172 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer180;
+ bSizer180 = new wxBoxSizer( wxHORIZONTAL );
+
+ sbSizerErrorHandling = new wxStaticBoxSizer( new wxStaticBox( m_panelBatchSettings, wxID_ANY, _("Error handling") ), wxHORIZONTAL );
+
+ m_toggleBtnErrorIgnore = new wxToggleButton( m_panelBatchSettings, wxID_ANY, _("Ignore"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_toggleBtnErrorIgnore->SetToolTip( _("Hide all error and warning messages") );
+
+ sbSizerErrorHandling->Add( m_toggleBtnErrorIgnore, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_toggleBtnErrorPopup = new wxToggleButton( m_panelBatchSettings, wxID_ANY, _("Pop-up"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_toggleBtnErrorPopup->SetToolTip( _("Show pop-up on errors or warnings") );
+
+ sbSizerErrorHandling->Add( m_toggleBtnErrorPopup, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+
+ m_toggleBtnErrorExit = new wxToggleButton( m_panelBatchSettings, wxID_ANY, _("Exit"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_toggleBtnErrorExit->SetToolTip( _("Abort synchronization on first error") );
+
+ sbSizerErrorHandling->Add( m_toggleBtnErrorExit, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer180->Add( sbSizerErrorHandling, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxEXPAND, 5 );
+
+ sbSizerExecFinished = new wxStaticBoxSizer( new wxStaticBox( m_panelBatchSettings, wxID_ANY, _("On completion:") ), wxHORIZONTAL );
+
+ m_comboBoxExecFinished = new ExecFinishedBox( m_panelBatchSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
+ sbSizerExecFinished->Add( m_comboBoxExecFinished, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer180->Add( sbSizerExecFinished, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+
+ bSizer172->Add( bSizer180, 0, wxEXPAND, 5 );
+
+
+ bSizer172->Add( 0, 5, 0, 0, 5 );
+
+ m_checkBoxShowProgress = new wxCheckBox( m_panelBatchSettings, wxID_ANY, _("Show progress dialog"), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer172->Add( m_checkBoxShowProgress, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 5 );
+
+ m_checkBoxGenerateLogfile = new wxCheckBox( m_panelBatchSettings, wxID_ANY, _("Generate log file"), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer172->Add( m_checkBoxGenerateLogfile, 0, wxEXPAND|wxALL, 5 );
+
+ m_panelLogfile = new wxPanel( m_panelBatchSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ wxBoxSizer* bSizer1721;
+ bSizer1721 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_comboBoxLogfileDir = new FolderHistoryBox( m_panelLogfile, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
+ bSizer1721->Add( m_comboBoxLogfileDir, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_buttonSelectLogfileDir = new wxButton( m_panelLogfile, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_buttonSelectLogfileDir->SetToolTip( _("Select folder to save log files") );
+
+ bSizer1721->Add( m_buttonSelectLogfileDir, 0, wxALIGN_CENTER_VERTICAL, 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( 50,-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 );
+ bSizer172->Add( m_panelLogfile, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+
+ bSizer117->Add( bSizer172, 1, wxEXPAND|wxALL, 10 );
+
+
+ m_panelBatchSettings->SetSizer( bSizer117 );
+ m_panelBatchSettings->Layout();
+ bSizer117->Fit( m_panelBatchSettings );
+ m_notebook1->AddPage( m_panelBatchSettings, _("Batch settings"), false );
+
+ bSizer54->Add( m_notebook1, 1, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
+
+ wxBoxSizer* bSizer68;
+ bSizer68 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_buttonLoad = new wxButton( this, wxID_OPEN, _("&Open..."), wxDefaultPosition, wxSize( -1,30 ), 0 );
+ m_buttonLoad->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
+
+ bSizer68->Add( m_buttonLoad, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 );
+
+ m_buttonSave = new wxButton( this, wxID_SAVE, _("Save &as..."), wxDefaultPosition, wxSize( -1,30 ), 0 );
+ m_buttonSave->SetDefault();
+ m_buttonSave->SetFont( wxFont( 10, 70, 90, 92, false, wxEmptyString ) );
+
+ bSizer68->Add( m_buttonSave, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+ m_button6 = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,30 ), 0 );
+ m_button6->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
+
+ bSizer68->Add( m_button6, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer54->Add( bSizer68, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
+
+
+ this->SetSizer( bSizer54 );
+ this->Layout();
+ bSizer54->Fit( this );
+
+ this->Centre( wxBOTH );
+
+ // Connect Events
+ this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( BatchDlgGenerated::OnClose ) );
+ m_bpButtonHelp->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnHelp ), NULL, this );
+ m_bpButtonCmpConfig->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnCmpSettings ), NULL, this );
+ m_bpButtonFilter->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnConfigureFilter ), NULL, this );
+ m_bpButtonSyncConfig->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnSyncSettings ), NULL, this );
+ m_bpButtonAddPair->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnAddFolderPair ), NULL, this );
+ m_bpButtonRemovePair->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnRemoveTopFolderPair ), NULL, this );
+ m_toggleBtnErrorIgnore->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnErrorIgnore ), NULL, this );
+ m_toggleBtnErrorPopup->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnErrorPopup ), NULL, this );
+ m_toggleBtnErrorExit->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnErrorExit ), 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_buttonLoad->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnLoadBatchJob ), NULL, this );
+ m_buttonSave->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnSaveBatchJob ), NULL, this );
+ m_button6->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnCancel ), NULL, this );
}
BatchDlgGenerated::~BatchDlgGenerated()
{
- // Disconnect Events
- this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( BatchDlgGenerated::OnClose ) );
- m_bpButtonHelp->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnHelp ), NULL, this );
- m_bpButtonCmpConfig->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnCmpSettings ), NULL, this );
- m_bpButtonFilter->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnConfigureFilter ), NULL, this );
- m_bpButtonSyncConfig->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnSyncSettings ), NULL, this );
- m_bpButtonAddPair->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnAddFolderPair ), NULL, this );
- m_bpButtonRemovePair->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnRemoveTopFolderPair ), NULL, this );
- m_toggleBtnErrorIgnore->Disconnect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnErrorIgnore ), NULL, this );
- m_toggleBtnErrorPopup->Disconnect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnErrorPopup ), NULL, this );
- m_toggleBtnErrorExit->Disconnect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnErrorExit ), NULL, this );
- m_checkBoxGenerateLogfile->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnToggleGenerateLogfile ), NULL, this );
- m_checkBoxLogfilesLimit->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnToggleLogfilesLimit ), NULL, this );
- m_buttonLoad->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnLoadBatchJob ), NULL, this );
- m_buttonSave->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnSaveBatchJob ), NULL, this );
- m_button6->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnCancel ), NULL, this );
-
+ // Disconnect Events
+ this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( BatchDlgGenerated::OnClose ) );
+ m_bpButtonHelp->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnHelp ), NULL, this );
+ m_bpButtonCmpConfig->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnCmpSettings ), NULL, this );
+ m_bpButtonFilter->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnConfigureFilter ), NULL, this );
+ m_bpButtonSyncConfig->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnSyncSettings ), NULL, this );
+ m_bpButtonAddPair->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnAddFolderPair ), NULL, this );
+ m_bpButtonRemovePair->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnRemoveTopFolderPair ), NULL, this );
+ m_toggleBtnErrorIgnore->Disconnect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnErrorIgnore ), NULL, this );
+ m_toggleBtnErrorPopup->Disconnect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnErrorPopup ), NULL, this );
+ m_toggleBtnErrorExit->Disconnect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnErrorExit ), NULL, this );
+ m_checkBoxGenerateLogfile->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnToggleGenerateLogfile ), NULL, this );
+ m_checkBoxLogfilesLimit->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnToggleLogfilesLimit ), NULL, this );
+ m_buttonLoad->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnLoadBatchJob ), NULL, this );
+ m_buttonSave->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnSaveBatchJob ), NULL, this );
+ m_button6->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnCancel ), NULL, this );
+
}
BatchFolderPairGenerated::BatchFolderPairGenerated( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxPanel( parent, id, pos, size, style )
{
- wxBoxSizer* bSizer142;
- bSizer142 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer140;
- bSizer140 = new wxBoxSizer( wxHORIZONTAL );
-
- m_panel32 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxDOUBLE_BORDER );
- wxBoxSizer* bSizer147;
- bSizer147 = new wxBoxSizer( wxHORIZONTAL );
-
- wxBoxSizer* bSizer136;
- bSizer136 = new wxBoxSizer( wxVERTICAL );
-
- m_bpButtonRemovePair = new wxBitmapButton( m_panel32, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 19,21 ), wxBU_AUTODRAW );
- m_bpButtonRemovePair->SetToolTip( _("Remove folder pair") );
-
- bSizer136->Add( m_bpButtonRemovePair, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer147->Add( bSizer136, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- wxBoxSizer* bSizer143;
- bSizer143 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer145;
- bSizer145 = new wxBoxSizer( wxHORIZONTAL );
-
- m_staticText53 = new wxStaticText( m_panel32, wxID_ANY, _("Left"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText53->Wrap( -1 );
- m_staticText53->SetFont( wxFont( 8, 70, 90, 92, false, wxEmptyString ) );
-
- bSizer145->Add( m_staticText53, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer143->Add( bSizer145, 1, 0, 5 );
-
- wxBoxSizer* bSizer146;
- bSizer146 = new wxBoxSizer( wxHORIZONTAL );
-
- m_staticText541 = new wxStaticText( m_panel32, wxID_ANY, _("Right"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText541->Wrap( -1 );
- m_staticText541->SetFont( wxFont( 8, 70, 90, 92, false, wxEmptyString ) );
-
- bSizer146->Add( m_staticText541, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer143->Add( bSizer146, 1, 0, 5 );
-
-
- bSizer147->Add( bSizer143, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT|wxLEFT, 5 );
-
-
- m_panel32->SetSizer( bSizer147 );
- m_panel32->Layout();
- bSizer147->Fit( m_panel32 );
- bSizer140->Add( m_panel32, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
- wxBoxSizer* bSizer144;
- bSizer144 = new wxBoxSizer( wxVERTICAL );
-
- m_panelLeft = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- wxBoxSizer* bSizer114;
- bSizer114 = new wxBoxSizer( wxHORIZONTAL );
-
- m_directoryLeft = new FolderHistoryBox( m_panelLeft, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
- bSizer114->Add( m_directoryLeft, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_buttonSelectDirLeft = new wxButton( m_panelLeft, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
- m_buttonSelectDirLeft->SetToolTip( _("Select a folder") );
-
- bSizer114->Add( m_buttonSelectDirLeft, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- m_panelLeft->SetSizer( bSizer114 );
- m_panelLeft->Layout();
- bSizer114->Fit( m_panelLeft );
- bSizer144->Add( m_panelLeft, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
- m_panelRight = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- wxBoxSizer* bSizer115;
- bSizer115 = new wxBoxSizer( wxHORIZONTAL );
-
- m_directoryRight = new FolderHistoryBox( m_panelRight, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
- bSizer115->Add( m_directoryRight, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_buttonSelectDirRight = new wxButton( m_panelRight, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
- m_buttonSelectDirRight->SetToolTip( _("Select a folder") );
-
- bSizer115->Add( m_buttonSelectDirRight, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- m_panelRight->SetSizer( bSizer115 );
- m_panelRight->Layout();
- bSizer115->Fit( m_panelRight );
- bSizer144->Add( m_panelRight, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer140->Add( bSizer144, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
- wxBoxSizer* bSizer176;
- bSizer176 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bpButtonAltCompCfg = new wxBitmapButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 20,20 ), wxBU_AUTODRAW );
- bSizer176->Add( m_bpButtonAltCompCfg, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bpButtonLocalFilter = new wxBitmapButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 20,20 ), wxBU_AUTODRAW );
- bSizer176->Add( m_bpButtonLocalFilter, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 3 );
-
- m_bpButtonAltSyncCfg = new wxBitmapButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 20,20 ), wxBU_AUTODRAW );
- bSizer176->Add( m_bpButtonAltSyncCfg, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer140->Add( bSizer176, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
-
-
- bSizer142->Add( bSizer140, 0, wxEXPAND, 5 );
-
-
- bSizer142->Add( 0, 5, 0, 0, 5 );
-
-
- this->SetSizer( bSizer142 );
- this->Layout();
- bSizer142->Fit( this );
+ wxBoxSizer* bSizer142;
+ bSizer142 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer140;
+ bSizer140 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_panel32 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxDOUBLE_BORDER );
+ wxBoxSizer* bSizer147;
+ bSizer147 = new wxBoxSizer( wxHORIZONTAL );
+
+ wxBoxSizer* bSizer136;
+ bSizer136 = new wxBoxSizer( wxVERTICAL );
+
+ m_bpButtonRemovePair = new wxBitmapButton( m_panel32, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 23,23 ), wxBU_AUTODRAW );
+ m_bpButtonRemovePair->SetToolTip( _("Remove folder pair") );
+
+ bSizer136->Add( m_bpButtonRemovePair, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer147->Add( bSizer136, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ wxBoxSizer* bSizer143;
+ bSizer143 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer145;
+ bSizer145 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_staticText53 = new wxStaticText( m_panel32, wxID_ANY, _("Left"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText53->Wrap( -1 );
+ m_staticText53->SetFont( wxFont( 8, 70, 90, 92, false, wxEmptyString ) );
+
+ bSizer145->Add( m_staticText53, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer143->Add( bSizer145, 1, 0, 5 );
+
+ wxBoxSizer* bSizer146;
+ bSizer146 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_staticText541 = new wxStaticText( m_panel32, wxID_ANY, _("Right"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText541->Wrap( -1 );
+ m_staticText541->SetFont( wxFont( 8, 70, 90, 92, false, wxEmptyString ) );
+
+ bSizer146->Add( m_staticText541, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer143->Add( bSizer146, 1, 0, 5 );
+
+
+ bSizer147->Add( bSizer143, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT|wxLEFT, 5 );
+
+
+ m_panel32->SetSizer( bSizer147 );
+ m_panel32->Layout();
+ bSizer147->Fit( m_panel32 );
+ bSizer140->Add( m_panel32, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer144;
+ bSizer144 = new wxBoxSizer( wxVERTICAL );
+
+ m_panelLeft = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ wxBoxSizer* bSizer114;
+ bSizer114 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_directoryLeft = new FolderHistoryBox( m_panelLeft, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
+ bSizer114->Add( m_directoryLeft, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_buttonSelectDirLeft = new wxButton( m_panelLeft, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_buttonSelectDirLeft->SetToolTip( _("Select a folder") );
+
+ bSizer114->Add( m_buttonSelectDirLeft, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ m_panelLeft->SetSizer( bSizer114 );
+ m_panelLeft->Layout();
+ bSizer114->Fit( m_panelLeft );
+ bSizer144->Add( m_panelLeft, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+ m_panelRight = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ wxBoxSizer* bSizer115;
+ bSizer115 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_directoryRight = new FolderHistoryBox( m_panelRight, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
+ bSizer115->Add( m_directoryRight, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_buttonSelectDirRight = new wxButton( m_panelRight, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_buttonSelectDirRight->SetToolTip( _("Select a folder") );
+
+ bSizer115->Add( m_buttonSelectDirRight, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ m_panelRight->SetSizer( bSizer115 );
+ m_panelRight->Layout();
+ bSizer115->Fit( m_panelRight );
+ bSizer144->Add( m_panelRight, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer140->Add( bSizer144, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+ wxBoxSizer* bSizer176;
+ bSizer176 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bpButtonAltCompCfg = new wxBitmapButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 22,22 ), wxBU_AUTODRAW );
+ bSizer176->Add( m_bpButtonAltCompCfg, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bpButtonLocalFilter = new wxBitmapButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 22,22 ), wxBU_AUTODRAW );
+ bSizer176->Add( m_bpButtonLocalFilter, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 3 );
+
+ m_bpButtonAltSyncCfg = new wxBitmapButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 22,22 ), wxBU_AUTODRAW );
+ bSizer176->Add( m_bpButtonAltSyncCfg, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer140->Add( bSizer176, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
+
+
+ bSizer142->Add( bSizer140, 0, wxEXPAND, 5 );
+
+
+ bSizer142->Add( 0, 5, 0, 0, 5 );
+
+
+ this->SetSizer( bSizer142 );
+ this->Layout();
+ bSizer142->Fit( this );
}
BatchFolderPairGenerated::~BatchFolderPairGenerated()
@@ -1722,1958 +1719,1956 @@ BatchFolderPairGenerated::~BatchFolderPairGenerated()
CmpCfgDlgGenerated::CmpCfgDlgGenerated( 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* bSizer136;
- bSizer136 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer55;
- bSizer55 = new wxBoxSizer( wxVERTICAL );
-
- wxStaticBoxSizer* sbSizer6;
- sbSizer6 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Compare by...") ), wxHORIZONTAL );
-
- wxFlexGridSizer* fgSizer16;
- fgSizer16 = new wxFlexGridSizer( 2, 2, 8, 5 );
- fgSizer16->SetFlexibleDirection( wxBOTH );
- fgSizer16->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
-
- m_bitmapByTime = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- m_bitmapByTime->SetToolTip( _("Files are found equal if\n - last write time and date\n - file size\nare the same") );
-
- fgSizer16->Add( m_bitmapByTime, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_toggleBtnTimeSize = new wxToggleButton( this, wxID_ANY, _("File time and size"), wxDefaultPosition, wxSize( -1,40 ), 0 );
- m_toggleBtnTimeSize->SetFont( wxFont( 11, 70, 90, 92, false, wxEmptyString ) );
- m_toggleBtnTimeSize->SetToolTip( _("Files are found equal if\n - last write time and date\n - file size\nare the same") );
-
- fgSizer16->Add( m_toggleBtnTimeSize, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bitmapByContent = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- m_bitmapByContent->SetToolTip( _("Files are found equal if\n - file content\nis the same") );
-
- fgSizer16->Add( m_bitmapByContent, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_toggleBtnContent = new wxToggleButton( this, wxID_ANY, _("File content"), wxDefaultPosition, wxSize( -1,40 ), 0 );
- m_toggleBtnContent->SetFont( wxFont( 11, 70, 90, 92, false, wxEmptyString ) );
- m_toggleBtnContent->SetToolTip( _("Files are found equal if\n - file content\nis the same") );
-
- fgSizer16->Add( m_toggleBtnContent, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
-
- sbSizer6->Add( fgSizer16, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
-
- bSizer55->Add( sbSizer6, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 2 );
-
-
- bSizer55->Add( 0, 4, 0, 0, 5 );
-
- wxBoxSizer* bSizer177;
- bSizer177 = new wxBoxSizer( wxHORIZONTAL );
-
- wxStaticBoxSizer* sbSizer25;
- sbSizer25 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Symbolic Link handling") ), wxVERTICAL );
-
- wxArrayString m_choiceHandleSymlinksChoices;
- m_choiceHandleSymlinks = new wxChoice( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceHandleSymlinksChoices, 0 );
- m_choiceHandleSymlinks->SetSelection( -1 );
- sbSizer25->Add( m_choiceHandleSymlinks, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
-
- bSizer177->Add( sbSizer25, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bpButtonHelp = new wxBitmapButton( this, wxID_HELP, wxNullBitmap, wxDefaultPosition, wxSize( 40,40 ), wxBU_AUTODRAW );
- m_bpButtonHelp->SetToolTip( _("Help") );
-
- bSizer177->Add( m_bpButtonHelp, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
-
-
- bSizer55->Add( bSizer177, 0, wxEXPAND, 5 );
-
- wxBoxSizer* bSizer22;
- bSizer22 = new wxBoxSizer( wxHORIZONTAL );
-
- m_button10 = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxSize( -1,30 ), 0 );
- m_button10->SetDefault();
- m_button10->SetFont( wxFont( 10, 70, 90, 92, false, wxEmptyString ) );
-
- bSizer22->Add( m_button10, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 );
-
- m_button6 = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,30 ), 0 );
- m_button6->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
-
- bSizer22->Add( m_button6, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer55->Add( bSizer22, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
-
-
- bSizer136->Add( bSizer55, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
-
-
- this->SetSizer( bSizer136 );
- this->Layout();
- bSizer136->Fit( this );
-
- this->Centre( wxBOTH );
-
- // Connect Events
- this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( CmpCfgDlgGenerated::OnClose ) );
- m_toggleBtnTimeSize->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( CmpCfgDlgGenerated::OnTimeSizeDouble ), NULL, this );
- m_toggleBtnTimeSize->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( CmpCfgDlgGenerated::OnTimeSize ), NULL, this );
- m_toggleBtnContent->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( CmpCfgDlgGenerated::OnContentDouble ), NULL, this );
- m_toggleBtnContent->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( CmpCfgDlgGenerated::OnContent ), NULL, this );
- m_choiceHandleSymlinks->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( CmpCfgDlgGenerated::OnChangeErrorHandling ), NULL, this );
- m_bpButtonHelp->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CmpCfgDlgGenerated::OnShowHelp ), NULL, this );
- m_button10->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CmpCfgDlgGenerated::OnOkay ), NULL, this );
- m_button6->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CmpCfgDlgGenerated::OnCancel ), NULL, this );
+ this->SetSizeHints( wxDefaultSize, wxDefaultSize );
+
+ wxBoxSizer* bSizer136;
+ bSizer136 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer55;
+ bSizer55 = new wxBoxSizer( wxVERTICAL );
+
+ wxStaticBoxSizer* sbSizer6;
+ sbSizer6 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Compare by...") ), wxHORIZONTAL );
+
+ wxFlexGridSizer* fgSizer16;
+ fgSizer16 = new wxFlexGridSizer( 2, 2, 8, 5 );
+ fgSizer16->SetFlexibleDirection( wxBOTH );
+ fgSizer16->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+
+ m_bitmapByTime = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ m_bitmapByTime->SetToolTip( _("Files are found equal if\n - last write time and date\n - file size\nare the same") );
+
+ fgSizer16->Add( m_bitmapByTime, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_toggleBtnTimeSize = new wxToggleButton( this, wxID_ANY, _("File time and size"), wxDefaultPosition, wxSize( -1,40 ), 0 );
+ m_toggleBtnTimeSize->SetFont( wxFont( 11, 70, 90, 92, false, wxEmptyString ) );
+ m_toggleBtnTimeSize->SetToolTip( _("Files are found equal if\n - last write time and date\n - file size\nare the same") );
+
+ fgSizer16->Add( m_toggleBtnTimeSize, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bitmapByContent = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ m_bitmapByContent->SetToolTip( _("Files are found equal if\n - file content\nis the same") );
+
+ fgSizer16->Add( m_bitmapByContent, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_toggleBtnContent = new wxToggleButton( this, wxID_ANY, _("File content"), wxDefaultPosition, wxSize( -1,40 ), 0 );
+ m_toggleBtnContent->SetFont( wxFont( 11, 70, 90, 92, false, wxEmptyString ) );
+ m_toggleBtnContent->SetToolTip( _("Files are found equal if\n - file content\nis the same") );
+
+ fgSizer16->Add( m_toggleBtnContent, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+
+ sbSizer6->Add( fgSizer16, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+
+ bSizer55->Add( sbSizer6, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 2 );
+
+
+ bSizer55->Add( 0, 4, 0, 0, 5 );
+
+ wxBoxSizer* bSizer177;
+ bSizer177 = new wxBoxSizer( wxHORIZONTAL );
+
+ wxStaticBoxSizer* sbSizer25;
+ sbSizer25 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Symbolic Link handling") ), wxVERTICAL );
+
+ wxArrayString m_choiceHandleSymlinksChoices;
+ m_choiceHandleSymlinks = new wxChoice( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceHandleSymlinksChoices, 0 );
+ m_choiceHandleSymlinks->SetSelection( -1 );
+ sbSizer25->Add( m_choiceHandleSymlinks, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+
+ bSizer177->Add( sbSizer25, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bpButtonHelp = new wxBitmapButton( this, wxID_HELP, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ m_bpButtonHelp->SetToolTip( _("Help") );
+
+ bSizer177->Add( m_bpButtonHelp, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
+
+
+ bSizer55->Add( bSizer177, 0, wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer22;
+ bSizer22 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_button10 = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxSize( -1,30 ), 0 );
+ m_button10->SetDefault();
+ m_button10->SetFont( wxFont( 10, 70, 90, 92, false, wxEmptyString ) );
+
+ bSizer22->Add( m_button10, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 );
+
+ m_button6 = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,30 ), 0 );
+ m_button6->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
+
+ bSizer22->Add( m_button6, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer55->Add( bSizer22, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
+
+
+ bSizer136->Add( bSizer55, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+
+ this->SetSizer( bSizer136 );
+ this->Layout();
+ bSizer136->Fit( this );
+
+ this->Centre( wxBOTH );
+
+ // Connect Events
+ this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( CmpCfgDlgGenerated::OnClose ) );
+ m_toggleBtnTimeSize->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( CmpCfgDlgGenerated::OnTimeSizeDouble ), NULL, this );
+ m_toggleBtnTimeSize->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( CmpCfgDlgGenerated::OnTimeSize ), NULL, this );
+ m_toggleBtnContent->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( CmpCfgDlgGenerated::OnContentDouble ), NULL, this );
+ m_toggleBtnContent->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( CmpCfgDlgGenerated::OnContent ), NULL, this );
+ m_choiceHandleSymlinks->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( CmpCfgDlgGenerated::OnChangeErrorHandling ), NULL, this );
+ m_bpButtonHelp->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CmpCfgDlgGenerated::OnShowHelp ), NULL, this );
+ m_button10->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CmpCfgDlgGenerated::OnOkay ), NULL, this );
+ m_button6->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CmpCfgDlgGenerated::OnCancel ), NULL, this );
}
CmpCfgDlgGenerated::~CmpCfgDlgGenerated()
{
- // Disconnect Events
- this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( CmpCfgDlgGenerated::OnClose ) );
- m_toggleBtnTimeSize->Disconnect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( CmpCfgDlgGenerated::OnTimeSizeDouble ), NULL, this );
- m_toggleBtnTimeSize->Disconnect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( CmpCfgDlgGenerated::OnTimeSize ), NULL, this );
- m_toggleBtnContent->Disconnect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( CmpCfgDlgGenerated::OnContentDouble ), NULL, this );
- m_toggleBtnContent->Disconnect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( CmpCfgDlgGenerated::OnContent ), NULL, this );
- m_choiceHandleSymlinks->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( CmpCfgDlgGenerated::OnChangeErrorHandling ), NULL, this );
- m_bpButtonHelp->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CmpCfgDlgGenerated::OnShowHelp ), NULL, this );
- m_button10->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CmpCfgDlgGenerated::OnOkay ), NULL, this );
- m_button6->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CmpCfgDlgGenerated::OnCancel ), NULL, this );
-
+ // Disconnect Events
+ this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( CmpCfgDlgGenerated::OnClose ) );
+ m_toggleBtnTimeSize->Disconnect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( CmpCfgDlgGenerated::OnTimeSizeDouble ), NULL, this );
+ m_toggleBtnTimeSize->Disconnect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( CmpCfgDlgGenerated::OnTimeSize ), NULL, this );
+ m_toggleBtnContent->Disconnect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( CmpCfgDlgGenerated::OnContentDouble ), NULL, this );
+ m_toggleBtnContent->Disconnect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( CmpCfgDlgGenerated::OnContent ), NULL, this );
+ m_choiceHandleSymlinks->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( CmpCfgDlgGenerated::OnChangeErrorHandling ), NULL, this );
+ m_bpButtonHelp->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CmpCfgDlgGenerated::OnShowHelp ), NULL, this );
+ m_button10->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CmpCfgDlgGenerated::OnOkay ), NULL, this );
+ m_button6->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CmpCfgDlgGenerated::OnCancel ), NULL, this );
+
}
SyncCfgDlgGenerated::SyncCfgDlgGenerated( 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* bSizer7;
- bSizer7 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer181;
- bSizer181 = new wxBoxSizer( wxHORIZONTAL );
-
- wxBoxSizer* bSizer29;
- bSizer29 = new wxBoxSizer( wxVERTICAL );
-
- wxStaticBoxSizer* sbSizer7;
- sbSizer7 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Select variant:") ), wxVERTICAL );
-
- wxFlexGridSizer* fgSizer1;
- fgSizer1 = new wxFlexGridSizer( 4, 2, 8, 5 );
- fgSizer1->SetFlexibleDirection( wxHORIZONTAL );
- fgSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
-
- m_toggleBtnAutomatic = new wxToggleButton( this, wxID_ANY, _("<Automatic>"), wxDefaultPosition, wxDefaultSize, 0 );
- m_toggleBtnAutomatic->SetFont( wxFont( 11, 70, 90, 92, false, wxEmptyString ) );
-
- fgSizer1->Add( m_toggleBtnAutomatic, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_staticTextAutomatic = new wxStaticText( this, wxID_ANY, _("Identify and propagate changes on both sides using a database. Deletions, renaming and conflicts are detected automatically."), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextAutomatic->Wrap( 410 );
- fgSizer1->Add( m_staticTextAutomatic, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
-
- m_toggleBtnMirror = new wxToggleButton( this, wxID_ANY, _("Mirror ->>"), wxDefaultPosition, wxDefaultSize, 0 );
- m_toggleBtnMirror->SetFont( wxFont( 11, 70, 90, 92, false, wxEmptyString ) );
-
- fgSizer1->Add( m_toggleBtnMirror, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
- m_staticTextMirror = new wxStaticText( this, wxID_ANY, _("Mirror backup of left folder. Right folder is modified to exactly match left folder after synchronization."), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextMirror->Wrap( 410 );
- fgSizer1->Add( m_staticTextMirror, 0, wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_toggleBtnUpdate = new wxToggleButton( this, wxID_ANY, _("Update ->"), wxDefaultPosition, wxDefaultSize, 0 );
- m_toggleBtnUpdate->SetFont( wxFont( 11, 70, 90, 92, false, wxEmptyString ) );
-
- fgSizer1->Add( m_toggleBtnUpdate, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
- m_staticTextUpdate = new wxStaticText( this, wxID_ANY, _("Copy new or updated files to right folder."), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextUpdate->Wrap( 410 );
- fgSizer1->Add( m_staticTextUpdate, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
-
- m_toggleBtnCustom = new wxToggleButton( this, wxID_ANY, _("Custom"), wxDefaultPosition, wxDefaultSize, 0 );
- m_toggleBtnCustom->SetFont( wxFont( 11, 70, 90, 92, false, wxEmptyString ) );
-
- fgSizer1->Add( m_toggleBtnCustom, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
- m_staticTextCustom = new wxStaticText( this, wxID_ANY, _("Configure your own synchronization rules."), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextCustom->Wrap( 410 );
- fgSizer1->Add( m_staticTextCustom, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
-
-
- sbSizer7->Add( fgSizer1, 0, 0, 5 );
-
-
- bSizer29->Add( sbSizer7, 0, wxEXPAND, 5 );
-
-
- bSizer29->Add( 0, 5, 1, 0, 5 );
-
- wxStaticBoxSizer* sbSizer27;
- sbSizer27 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Deletion handling") ), wxVERTICAL );
-
- wxBoxSizer* bSizer180;
- bSizer180 = new wxBoxSizer( wxHORIZONTAL );
-
- m_toggleBtnPermanent = new wxToggleButton( this, wxID_ANY, _("Permanent"), wxDefaultPosition, wxDefaultSize, 0 );
- m_toggleBtnPermanent->SetToolTip( _("Delete or overwrite files permanently") );
-
- bSizer180->Add( m_toggleBtnPermanent, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_toggleBtnRecycler = new wxToggleButton( this, wxID_ANY, _("Recycle Bin"), wxDefaultPosition, wxDefaultSize, 0 );
- m_toggleBtnRecycler->SetToolTip( _("Use Recycle Bin when deleting or overwriting files") );
-
- bSizer180->Add( m_toggleBtnRecycler, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_toggleBtnVersioning = new wxToggleButton( this, wxID_ANY, _("Versioning"), wxDefaultPosition, wxDefaultSize, 0 );
- m_toggleBtnVersioning->SetToolTip( _("Move time-stamped files into specified folder") );
-
- bSizer180->Add( m_toggleBtnVersioning, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer180->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_checkBoxVersionsLimit = new wxCheckBox( this, wxID_ANY, _("Limit"), wxDefaultPosition, wxDefaultSize, 0 );
- m_checkBoxVersionsLimit->SetToolTip( _("Limit maximum number of versions per file") );
-
- bSizer180->Add( m_checkBoxVersionsLimit, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
-
- m_spinCtrlVersionsLimit = new wxSpinCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 50,-1 ), wxSP_ARROW_KEYS, 1, 2000000000, 1 );
- m_spinCtrlVersionsLimit->SetToolTip( _("Limit maximum number of versions per file") );
-
- bSizer180->Add( m_spinCtrlVersionsLimit, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- sbSizer27->Add( bSizer180, 0, wxEXPAND, 5 );
-
- m_panelVersioning = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- wxBoxSizer* bSizer1151;
- bSizer1151 = new wxBoxSizer( wxHORIZONTAL );
-
- m_versioningFolder = new FolderHistoryBox( m_panelVersioning, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
- bSizer1151->Add( m_versioningFolder, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_buttonSelectDirVersioning = new wxButton( m_panelVersioning, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
- m_buttonSelectDirVersioning->SetToolTip( _("Select a folder") );
-
- bSizer1151->Add( m_buttonSelectDirVersioning, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- m_panelVersioning->SetSizer( bSizer1151 );
- m_panelVersioning->Layout();
- bSizer1151->Fit( m_panelVersioning );
- sbSizer27->Add( m_panelVersioning, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP, 5 );
-
-
- bSizer29->Add( sbSizer27, 0, wxEXPAND, 5 );
-
- bSizer201 = new wxBoxSizer( wxHORIZONTAL );
-
- sbSizerErrorHandling = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Error handling") ), wxHORIZONTAL );
-
- m_toggleBtnErrorIgnore = new wxToggleButton( this, wxID_ANY, _("Ignore"), wxDefaultPosition, wxDefaultSize, 0 );
- m_toggleBtnErrorIgnore->SetToolTip( _("Hide all error and warning messages") );
-
- sbSizerErrorHandling->Add( m_toggleBtnErrorIgnore, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_toggleBtnErrorPopup = new wxToggleButton( this, wxID_ANY, _("Pop-up"), wxDefaultPosition, wxDefaultSize, 0 );
- m_toggleBtnErrorPopup->SetToolTip( _("Show pop-up on errors or warnings") );
-
- sbSizerErrorHandling->Add( m_toggleBtnErrorPopup, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer201->Add( sbSizerErrorHandling, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
- sbSizerExecFinished = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("On completion:") ), wxHORIZONTAL );
-
- m_comboBoxExecFinished = new ExecFinishedBox( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
- sbSizerExecFinished->Add( m_comboBoxExecFinished, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer201->Add( sbSizerExecFinished, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
-
- bSizer29->Add( bSizer201, 0, wxEXPAND|wxTOP, 5 );
-
-
- bSizer181->Add( bSizer29, 0, wxEXPAND, 5 );
-
-
- bSizer181->Add( 10, 0, 0, 0, 5 );
-
- wxStaticBoxSizer* sbSizer2453245;
- sbSizer2453245 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Configuration") ), wxVERTICAL );
-
-
- sbSizer2453245->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_bitmapDatabase = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 70,70 ), 0 );
- sbSizer2453245->Add( m_bitmapDatabase, 1, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 10 );
-
- sbSizerSyncDirections = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer1801;
- bSizer1801 = new wxBoxSizer( wxHORIZONTAL );
-
- m_staticText21 = new wxStaticText( this, wxID_ANY, _("Category"), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE );
- m_staticText21->Wrap( -1 );
- m_staticText21->SetFont( wxFont( 8, 70, 90, 92, false, wxEmptyString ) );
-
- bSizer1801->Add( m_staticText21, 1, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_staticText31 = new wxStaticText( this, wxID_ANY, _("Action"), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE );
- m_staticText31->Wrap( -1 );
- m_staticText31->SetFont( wxFont( 8, 70, 90, 92, false, wxEmptyString ) );
-
- bSizer1801->Add( m_staticText31, 1, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
-
- sbSizerSyncDirections->Add( bSizer1801, 0, wxEXPAND, 5 );
-
- bSizerLeftOnly = new wxBoxSizer( wxHORIZONTAL );
-
- m_bitmapLeftOnly = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 45,45 ), 0 );
- m_bitmapLeftOnly->SetToolTip( _("Item exists on left side only") );
-
- bSizerLeftOnly->Add( m_bitmapLeftOnly, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizerLeftOnly->Add( 5, 0, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bpButtonLeftOnly = new wxBitmapButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
- bSizerLeftOnly->Add( m_bpButtonLeftOnly, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- sbSizerSyncDirections->Add( bSizerLeftOnly, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
-
- bSizerRightOnly = new wxBoxSizer( wxHORIZONTAL );
-
- m_bitmapRightOnly = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 45,45 ), 0 );
- m_bitmapRightOnly->SetToolTip( _("Item exists on right side only") );
-
- bSizerRightOnly->Add( m_bitmapRightOnly, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizerRightOnly->Add( 5, 0, 0, 0, 5 );
-
- m_bpButtonRightOnly = new wxBitmapButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
- bSizerRightOnly->Add( m_bpButtonRightOnly, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- sbSizerSyncDirections->Add( bSizerRightOnly, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
-
- bSizerLeftNewer = new wxBoxSizer( wxHORIZONTAL );
-
- m_bitmapLeftNewer = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 45,45 ), 0 );
- m_bitmapLeftNewer->SetToolTip( _("Left side is newer") );
-
- bSizerLeftNewer->Add( m_bitmapLeftNewer, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizerLeftNewer->Add( 5, 0, 0, 0, 5 );
-
- m_bpButtonLeftNewer = new wxBitmapButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
- bSizerLeftNewer->Add( m_bpButtonLeftNewer, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- sbSizerSyncDirections->Add( bSizerLeftNewer, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
-
- bSizerRightNewer = new wxBoxSizer( wxHORIZONTAL );
-
- m_bitmapRightNewer = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 45,45 ), 0 );
- m_bitmapRightNewer->SetToolTip( _("Right side is newer") );
-
- bSizerRightNewer->Add( m_bitmapRightNewer, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizerRightNewer->Add( 5, 0, 0, 0, 5 );
-
- m_bpButtonRightNewer = new wxBitmapButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
- bSizerRightNewer->Add( m_bpButtonRightNewer, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- sbSizerSyncDirections->Add( bSizerRightNewer, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
-
- bSizerDifferent = new wxBoxSizer( wxHORIZONTAL );
-
- m_bitmapDifferent = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 45,45 ), 0 );
- m_bitmapDifferent->SetToolTip( _("Items have different content") );
-
- bSizerDifferent->Add( m_bitmapDifferent, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizerDifferent->Add( 5, 0, 0, 0, 5 );
-
- m_bpButtonDifferent = new wxBitmapButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
- bSizerDifferent->Add( m_bpButtonDifferent, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- sbSizerSyncDirections->Add( bSizerDifferent, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
-
- bSizerConflict = new wxBoxSizer( wxHORIZONTAL );
-
- m_bitmapConflict = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 45,45 ), 0 );
- m_bitmapConflict->SetToolTip( _("Conflict/item cannot be categorized") );
-
- bSizerConflict->Add( m_bitmapConflict, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizerConflict->Add( 5, 0, 0, 0, 5 );
-
- m_bpButtonConflict = new wxBitmapButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
- bSizerConflict->Add( m_bpButtonConflict, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- sbSizerSyncDirections->Add( bSizerConflict, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
-
-
- sbSizer2453245->Add( sbSizerSyncDirections, 0, wxEXPAND, 5 );
-
-
- sbSizer2453245->Add( 0, 0, 1, wxEXPAND, 5 );
-
-
- bSizer181->Add( sbSizer2453245, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
-
-
- bSizer7->Add( bSizer181, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
-
- wxBoxSizer* bSizer291;
- bSizer291 = new wxBoxSizer( wxHORIZONTAL );
-
- m_buttonOK = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxSize( -1,30 ), 0 );
- m_buttonOK->SetDefault();
- m_buttonOK->SetFont( wxFont( 10, 70, 90, 92, false, wxEmptyString ) );
-
- bSizer291->Add( m_buttonOK, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 );
-
- m_button16 = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,30 ), 0 );
- m_button16->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
-
- bSizer291->Add( m_button16, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer7->Add( bSizer291, 0, wxALIGN_CENTER_HORIZONTAL|wxBOTTOM, 5 );
-
-
- this->SetSizer( bSizer7 );
- this->Layout();
- bSizer7->Fit( this );
-
- this->Centre( wxBOTH );
-
- // Connect Events
- this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( SyncCfgDlgGenerated::OnClose ) );
- m_toggleBtnAutomatic->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( SyncCfgDlgGenerated::OnSyncAutomaticDouble ), NULL, this );
- m_toggleBtnAutomatic->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnSyncAutomatic ), NULL, this );
- m_toggleBtnMirror->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( SyncCfgDlgGenerated::OnSyncMirrorDouble ), NULL, this );
- m_toggleBtnMirror->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnSyncMirror ), NULL, this );
- m_toggleBtnUpdate->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( SyncCfgDlgGenerated::OnSyncUpdateDouble ), NULL, this );
- m_toggleBtnUpdate->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnSyncUpdate ), NULL, this );
- m_toggleBtnCustom->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( SyncCfgDlgGenerated::OnSyncCustomDouble ), NULL, this );
- m_toggleBtnCustom->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnSyncCustom ), NULL, this );
- m_toggleBtnPermanent->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnDeletionPermanent ), NULL, this );
- m_toggleBtnRecycler->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnDeletionRecycler ), NULL, this );
- m_toggleBtnVersioning->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnDeletionVersioning ), NULL, this );
- m_checkBoxVersionsLimit->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnToggleVersionsLimit ), NULL, this );
- m_toggleBtnErrorIgnore->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnErrorIgnore ), NULL, this );
- m_toggleBtnErrorPopup->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnErrorPopup ), NULL, this );
- m_bpButtonLeftOnly->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnExLeftSideOnly ), NULL, this );
- m_bpButtonRightOnly->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnExRightSideOnly ), NULL, this );
- m_bpButtonLeftNewer->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnLeftNewer ), NULL, this );
- m_bpButtonRightNewer->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnRightNewer ), NULL, this );
- m_bpButtonDifferent->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnDifferent ), NULL, this );
- m_bpButtonConflict->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnConflict ), NULL, this );
- m_buttonOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnApply ), NULL, this );
- m_button16->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnCancel ), NULL, this );
+ this->SetSizeHints( wxDefaultSize, wxDefaultSize );
+
+ wxBoxSizer* bSizer7;
+ bSizer7 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer181;
+ bSizer181 = new wxBoxSizer( wxHORIZONTAL );
+
+ wxBoxSizer* bSizer29;
+ bSizer29 = new wxBoxSizer( wxVERTICAL );
+
+ wxStaticBoxSizer* sbSizer7;
+ sbSizer7 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Select variant:") ), wxVERTICAL );
+
+ wxFlexGridSizer* fgSizer1;
+ fgSizer1 = new wxFlexGridSizer( 4, 2, 8, 5 );
+ fgSizer1->SetFlexibleDirection( wxHORIZONTAL );
+ fgSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+
+ m_toggleBtnAutomatic = new wxToggleButton( this, wxID_ANY, _("<Automatic>"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_toggleBtnAutomatic->SetFont( wxFont( 11, 70, 90, 92, false, wxEmptyString ) );
+
+ fgSizer1->Add( m_toggleBtnAutomatic, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_staticTextAutomatic = new wxStaticText( this, wxID_ANY, _("Identify and propagate changes on both sides using a database. Deletions, renaming and conflicts are detected automatically."), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextAutomatic->Wrap( 410 );
+ fgSizer1->Add( m_staticTextAutomatic, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
+
+ m_toggleBtnMirror = new wxToggleButton( this, wxID_ANY, _("Mirror ->>"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_toggleBtnMirror->SetFont( wxFont( 11, 70, 90, 92, false, wxEmptyString ) );
+
+ fgSizer1->Add( m_toggleBtnMirror, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+ m_staticTextMirror = new wxStaticText( this, wxID_ANY, _("Mirror backup of left folder. Right folder is modified to exactly match left folder after synchronization."), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextMirror->Wrap( 410 );
+ fgSizer1->Add( m_staticTextMirror, 0, wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_toggleBtnUpdate = new wxToggleButton( this, wxID_ANY, _("Update ->"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_toggleBtnUpdate->SetFont( wxFont( 11, 70, 90, 92, false, wxEmptyString ) );
+
+ fgSizer1->Add( m_toggleBtnUpdate, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+ m_staticTextUpdate = new wxStaticText( this, wxID_ANY, _("Copy new or updated files to right folder."), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextUpdate->Wrap( 410 );
+ fgSizer1->Add( m_staticTextUpdate, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
+
+ m_toggleBtnCustom = new wxToggleButton( this, wxID_ANY, _("Custom"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_toggleBtnCustom->SetFont( wxFont( 11, 70, 90, 92, false, wxEmptyString ) );
+
+ fgSizer1->Add( m_toggleBtnCustom, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+ m_staticTextCustom = new wxStaticText( this, wxID_ANY, _("Configure your own synchronization rules."), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextCustom->Wrap( 410 );
+ fgSizer1->Add( m_staticTextCustom, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
+
+
+ sbSizer7->Add( fgSizer1, 0, 0, 5 );
+
+
+ bSizer29->Add( sbSizer7, 0, wxEXPAND, 5 );
+
+
+ bSizer29->Add( 0, 5, 1, 0, 5 );
+
+ wxStaticBoxSizer* sbSizer27;
+ sbSizer27 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Deletion handling") ), wxVERTICAL );
+
+ wxBoxSizer* bSizer180;
+ bSizer180 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_toggleBtnPermanent = new wxToggleButton( this, wxID_ANY, _("Permanent"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_toggleBtnPermanent->SetToolTip( _("Delete or overwrite files permanently") );
+
+ bSizer180->Add( m_toggleBtnPermanent, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_toggleBtnRecycler = new wxToggleButton( this, wxID_ANY, _("Recycle Bin"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_toggleBtnRecycler->SetToolTip( _("Use Recycle Bin when deleting or overwriting files") );
+
+ bSizer180->Add( m_toggleBtnRecycler, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_toggleBtnVersioning = new wxToggleButton( this, wxID_ANY, _("Versioning"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_toggleBtnVersioning->SetToolTip( _("Move time-stamped files into specified folder") );
+
+ bSizer180->Add( m_toggleBtnVersioning, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer180->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_checkBoxVersionsLimit = new wxCheckBox( this, wxID_ANY, _("Limit"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_checkBoxVersionsLimit->SetToolTip( _("Limit maximum number of versions per file") );
+
+ bSizer180->Add( m_checkBoxVersionsLimit, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+ m_spinCtrlVersionsLimit = new wxSpinCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 50,-1 ), wxSP_ARROW_KEYS, 1, 2000000000, 1 );
+ m_spinCtrlVersionsLimit->SetToolTip( _("Limit maximum number of versions per file") );
+
+ bSizer180->Add( m_spinCtrlVersionsLimit, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ sbSizer27->Add( bSizer180, 0, wxEXPAND, 5 );
+
+ m_panelVersioning = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ wxBoxSizer* bSizer1151;
+ bSizer1151 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_versioningFolder = new FolderHistoryBox( m_panelVersioning, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
+ bSizer1151->Add( m_versioningFolder, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_buttonSelectDirVersioning = new wxButton( m_panelVersioning, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_buttonSelectDirVersioning->SetToolTip( _("Select a folder") );
+
+ bSizer1151->Add( m_buttonSelectDirVersioning, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ m_panelVersioning->SetSizer( bSizer1151 );
+ m_panelVersioning->Layout();
+ bSizer1151->Fit( m_panelVersioning );
+ sbSizer27->Add( m_panelVersioning, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP, 5 );
+
+
+ bSizer29->Add( sbSizer27, 0, wxEXPAND, 5 );
+
+ bSizer201 = new wxBoxSizer( wxHORIZONTAL );
+
+ sbSizerErrorHandling = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Error handling") ), wxHORIZONTAL );
+
+ m_toggleBtnErrorIgnore = new wxToggleButton( this, wxID_ANY, _("Ignore"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_toggleBtnErrorIgnore->SetToolTip( _("Hide all error and warning messages") );
+
+ sbSizerErrorHandling->Add( m_toggleBtnErrorIgnore, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_toggleBtnErrorPopup = new wxToggleButton( this, wxID_ANY, _("Pop-up"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_toggleBtnErrorPopup->SetToolTip( _("Show pop-up on errors or warnings") );
+
+ sbSizerErrorHandling->Add( m_toggleBtnErrorPopup, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer201->Add( sbSizerErrorHandling, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+ sbSizerExecFinished = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("On completion:") ), wxHORIZONTAL );
+
+ m_comboBoxExecFinished = new ExecFinishedBox( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
+ sbSizerExecFinished->Add( m_comboBoxExecFinished, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer201->Add( sbSizerExecFinished, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+
+ bSizer29->Add( bSizer201, 0, wxEXPAND|wxTOP, 5 );
+
+
+ bSizer181->Add( bSizer29, 0, wxEXPAND, 5 );
+
+
+ bSizer181->Add( 10, 0, 0, 0, 5 );
+
+ wxStaticBoxSizer* sbSizer2453245;
+ sbSizer2453245 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Configuration") ), wxVERTICAL );
+
+
+ sbSizer2453245->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_bitmapDatabase = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 70,70 ), 0 );
+ sbSizer2453245->Add( m_bitmapDatabase, 1, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 10 );
+
+ sbSizerSyncDirections = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer1801;
+ bSizer1801 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_staticText21 = new wxStaticText( this, wxID_ANY, _("Category"), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE );
+ m_staticText21->Wrap( -1 );
+ m_staticText21->SetFont( wxFont( 8, 70, 90, 92, false, wxEmptyString ) );
+
+ bSizer1801->Add( m_staticText21, 1, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_staticText31 = new wxStaticText( this, wxID_ANY, _("Action"), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE );
+ m_staticText31->Wrap( -1 );
+ m_staticText31->SetFont( wxFont( 8, 70, 90, 92, false, wxEmptyString ) );
+
+ bSizer1801->Add( m_staticText31, 1, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+
+ sbSizerSyncDirections->Add( bSizer1801, 0, wxEXPAND, 5 );
+
+ bSizerLeftOnly = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bitmapLeftOnly = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 45,45 ), 0 );
+ m_bitmapLeftOnly->SetToolTip( _("Item exists on left side only") );
+
+ bSizerLeftOnly->Add( m_bitmapLeftOnly, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizerLeftOnly->Add( 5, 0, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bpButtonLeftOnly = new wxBitmapButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 46,46 ), wxBU_AUTODRAW );
+ bSizerLeftOnly->Add( m_bpButtonLeftOnly, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ sbSizerSyncDirections->Add( bSizerLeftOnly, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ bSizerRightOnly = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bitmapRightOnly = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 45,45 ), 0 );
+ m_bitmapRightOnly->SetToolTip( _("Item exists on right side only") );
+
+ bSizerRightOnly->Add( m_bitmapRightOnly, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizerRightOnly->Add( 5, 0, 0, 0, 5 );
+
+ m_bpButtonRightOnly = new wxBitmapButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 46,46 ), wxBU_AUTODRAW );
+ bSizerRightOnly->Add( m_bpButtonRightOnly, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ sbSizerSyncDirections->Add( bSizerRightOnly, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ bSizerLeftNewer = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bitmapLeftNewer = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 45,45 ), 0 );
+ m_bitmapLeftNewer->SetToolTip( _("Left side is newer") );
+
+ bSizerLeftNewer->Add( m_bitmapLeftNewer, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizerLeftNewer->Add( 5, 0, 0, 0, 5 );
+
+ m_bpButtonLeftNewer = new wxBitmapButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 46,46 ), wxBU_AUTODRAW );
+ bSizerLeftNewer->Add( m_bpButtonLeftNewer, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ sbSizerSyncDirections->Add( bSizerLeftNewer, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ bSizerRightNewer = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bitmapRightNewer = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 45,45 ), 0 );
+ m_bitmapRightNewer->SetToolTip( _("Right side is newer") );
+
+ bSizerRightNewer->Add( m_bitmapRightNewer, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizerRightNewer->Add( 5, 0, 0, 0, 5 );
+
+ m_bpButtonRightNewer = new wxBitmapButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 46,46 ), wxBU_AUTODRAW );
+ bSizerRightNewer->Add( m_bpButtonRightNewer, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ sbSizerSyncDirections->Add( bSizerRightNewer, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ bSizerDifferent = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bitmapDifferent = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 45,45 ), 0 );
+ m_bitmapDifferent->SetToolTip( _("Items have different content") );
+
+ bSizerDifferent->Add( m_bitmapDifferent, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizerDifferent->Add( 5, 0, 0, 0, 5 );
+
+ m_bpButtonDifferent = new wxBitmapButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 46,46 ), wxBU_AUTODRAW );
+ bSizerDifferent->Add( m_bpButtonDifferent, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ sbSizerSyncDirections->Add( bSizerDifferent, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ bSizerConflict = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bitmapConflict = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 45,45 ), 0 );
+ m_bitmapConflict->SetToolTip( _("Conflict/item cannot be categorized") );
+
+ bSizerConflict->Add( m_bitmapConflict, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizerConflict->Add( 5, 0, 0, 0, 5 );
+
+ m_bpButtonConflict = new wxBitmapButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 46,46 ), wxBU_AUTODRAW );
+ bSizerConflict->Add( m_bpButtonConflict, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ sbSizerSyncDirections->Add( bSizerConflict, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
+
+
+ sbSizer2453245->Add( sbSizerSyncDirections, 0, wxEXPAND, 5 );
+
+
+ sbSizer2453245->Add( 0, 0, 1, wxEXPAND, 5 );
+
+
+ bSizer181->Add( sbSizer2453245, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
+
+
+ bSizer7->Add( bSizer181, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
+
+ wxBoxSizer* bSizer291;
+ bSizer291 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_buttonOK = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxSize( -1,30 ), 0 );
+ m_buttonOK->SetDefault();
+ m_buttonOK->SetFont( wxFont( 10, 70, 90, 92, false, wxEmptyString ) );
+
+ bSizer291->Add( m_buttonOK, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 );
+
+ m_button16 = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,30 ), 0 );
+ m_button16->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
+
+ bSizer291->Add( m_button16, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer7->Add( bSizer291, 0, wxALIGN_CENTER_HORIZONTAL|wxBOTTOM, 5 );
+
+
+ this->SetSizer( bSizer7 );
+ this->Layout();
+ bSizer7->Fit( this );
+
+ this->Centre( wxBOTH );
+
+ // Connect Events
+ this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( SyncCfgDlgGenerated::OnClose ) );
+ m_toggleBtnAutomatic->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( SyncCfgDlgGenerated::OnSyncAutomaticDouble ), NULL, this );
+ m_toggleBtnAutomatic->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnSyncAutomatic ), NULL, this );
+ m_toggleBtnMirror->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( SyncCfgDlgGenerated::OnSyncMirrorDouble ), NULL, this );
+ m_toggleBtnMirror->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnSyncMirror ), NULL, this );
+ m_toggleBtnUpdate->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( SyncCfgDlgGenerated::OnSyncUpdateDouble ), NULL, this );
+ m_toggleBtnUpdate->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnSyncUpdate ), NULL, this );
+ m_toggleBtnCustom->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( SyncCfgDlgGenerated::OnSyncCustomDouble ), NULL, this );
+ m_toggleBtnCustom->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnSyncCustom ), NULL, this );
+ m_toggleBtnPermanent->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnDeletionPermanent ), NULL, this );
+ m_toggleBtnRecycler->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnDeletionRecycler ), NULL, this );
+ m_toggleBtnVersioning->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnDeletionVersioning ), NULL, this );
+ m_checkBoxVersionsLimit->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnToggleVersionsLimit ), NULL, this );
+ m_toggleBtnErrorIgnore->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnErrorIgnore ), NULL, this );
+ m_toggleBtnErrorPopup->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnErrorPopup ), NULL, this );
+ m_bpButtonLeftOnly->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnExLeftSideOnly ), NULL, this );
+ m_bpButtonRightOnly->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnExRightSideOnly ), NULL, this );
+ m_bpButtonLeftNewer->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnLeftNewer ), NULL, this );
+ m_bpButtonRightNewer->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnRightNewer ), NULL, this );
+ m_bpButtonDifferent->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnDifferent ), NULL, this );
+ m_bpButtonConflict->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnConflict ), NULL, this );
+ m_buttonOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnApply ), NULL, this );
+ m_button16->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnCancel ), NULL, this );
}
SyncCfgDlgGenerated::~SyncCfgDlgGenerated()
{
- // Disconnect Events
- this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( SyncCfgDlgGenerated::OnClose ) );
- m_toggleBtnAutomatic->Disconnect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( SyncCfgDlgGenerated::OnSyncAutomaticDouble ), NULL, this );
- m_toggleBtnAutomatic->Disconnect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnSyncAutomatic ), NULL, this );
- m_toggleBtnMirror->Disconnect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( SyncCfgDlgGenerated::OnSyncMirrorDouble ), NULL, this );
- m_toggleBtnMirror->Disconnect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnSyncMirror ), NULL, this );
- m_toggleBtnUpdate->Disconnect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( SyncCfgDlgGenerated::OnSyncUpdateDouble ), NULL, this );
- m_toggleBtnUpdate->Disconnect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnSyncUpdate ), NULL, this );
- m_toggleBtnCustom->Disconnect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( SyncCfgDlgGenerated::OnSyncCustomDouble ), NULL, this );
- m_toggleBtnCustom->Disconnect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnSyncCustom ), NULL, this );
- m_toggleBtnPermanent->Disconnect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnDeletionPermanent ), NULL, this );
- m_toggleBtnRecycler->Disconnect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnDeletionRecycler ), NULL, this );
- m_toggleBtnVersioning->Disconnect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnDeletionVersioning ), NULL, this );
- m_checkBoxVersionsLimit->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnToggleVersionsLimit ), NULL, this );
- m_toggleBtnErrorIgnore->Disconnect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnErrorIgnore ), NULL, this );
- m_toggleBtnErrorPopup->Disconnect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnErrorPopup ), NULL, this );
- m_bpButtonLeftOnly->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnExLeftSideOnly ), NULL, this );
- m_bpButtonRightOnly->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnExRightSideOnly ), NULL, this );
- m_bpButtonLeftNewer->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnLeftNewer ), NULL, this );
- m_bpButtonRightNewer->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnRightNewer ), NULL, this );
- m_bpButtonDifferent->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnDifferent ), NULL, this );
- m_bpButtonConflict->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnConflict ), NULL, this );
- m_buttonOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnApply ), NULL, this );
- m_button16->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnCancel ), NULL, this );
-
+ // Disconnect Events
+ this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( SyncCfgDlgGenerated::OnClose ) );
+ m_toggleBtnAutomatic->Disconnect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( SyncCfgDlgGenerated::OnSyncAutomaticDouble ), NULL, this );
+ m_toggleBtnAutomatic->Disconnect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnSyncAutomatic ), NULL, this );
+ m_toggleBtnMirror->Disconnect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( SyncCfgDlgGenerated::OnSyncMirrorDouble ), NULL, this );
+ m_toggleBtnMirror->Disconnect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnSyncMirror ), NULL, this );
+ m_toggleBtnUpdate->Disconnect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( SyncCfgDlgGenerated::OnSyncUpdateDouble ), NULL, this );
+ m_toggleBtnUpdate->Disconnect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnSyncUpdate ), NULL, this );
+ m_toggleBtnCustom->Disconnect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( SyncCfgDlgGenerated::OnSyncCustomDouble ), NULL, this );
+ m_toggleBtnCustom->Disconnect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnSyncCustom ), NULL, this );
+ m_toggleBtnPermanent->Disconnect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnDeletionPermanent ), NULL, this );
+ m_toggleBtnRecycler->Disconnect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnDeletionRecycler ), NULL, this );
+ m_toggleBtnVersioning->Disconnect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnDeletionVersioning ), NULL, this );
+ m_checkBoxVersionsLimit->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnToggleVersionsLimit ), NULL, this );
+ m_toggleBtnErrorIgnore->Disconnect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnErrorIgnore ), NULL, this );
+ m_toggleBtnErrorPopup->Disconnect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnErrorPopup ), NULL, this );
+ m_bpButtonLeftOnly->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnExLeftSideOnly ), NULL, this );
+ m_bpButtonRightOnly->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnExRightSideOnly ), NULL, this );
+ m_bpButtonLeftNewer->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnLeftNewer ), NULL, this );
+ m_bpButtonRightNewer->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnRightNewer ), NULL, this );
+ m_bpButtonDifferent->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnDifferent ), NULL, this );
+ m_bpButtonConflict->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnConflict ), NULL, this );
+ m_buttonOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnApply ), NULL, this );
+ m_button16->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncCfgDlgGenerated::OnCancel ), NULL, this );
+
}
SyncStatusDlgGenerated::SyncStatusDlgGenerated( 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( 470,260 ), wxDefaultSize );
- this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- bSizerTop = new wxBoxSizer( wxVERTICAL );
-
- m_panelHeader = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panelHeader->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
-
- wxBoxSizer* bSizer181;
- bSizer181 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer42;
- bSizer42 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bitmapStatus = new wxStaticBitmap( m_panelHeader, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 28,28 ), 0 );
- bSizer42->Add( m_bitmapStatus, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
-
- m_staticTextStatus = new wxStaticText( m_panelHeader, wxID_ANY, _("Synchronizing..."), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextStatus->Wrap( -1 );
- m_staticTextStatus->SetFont( wxFont( 14, 70, 90, 92, false, wxEmptyString ) );
-
- bSizer42->Add( m_staticTextStatus, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5 );
-
- m_animationControl1 = new wxAnimationCtrl( m_panelHeader, wxID_ANY, wxNullAnimation, wxDefaultPosition, wxDefaultSize, wxAC_DEFAULT_STYLE );
- m_animationControl1->SetMinSize( wxSize( 45,45 ) );
-
- bSizer42->Add( m_animationControl1, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
-
-
- bSizer181->Add( bSizer42, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 );
-
-
- m_panelHeader->SetSizer( bSizer181 );
- m_panelHeader->Layout();
- bSizer181->Fit( m_panelHeader );
- bSizerTop->Add( m_panelHeader, 0, wxEXPAND, 5 );
-
- m_staticlineHeader = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizerTop->Add( m_staticlineHeader, 0, wxEXPAND, 5 );
-
- m_panelProgress = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- wxBoxSizer* bSizer173;
- bSizer173 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer1811;
- bSizer1811 = new wxBoxSizer( wxVERTICAL );
-
- m_textCtrlStatus = new wxTextCtrl( m_panelProgress, wxID_ANY, _("dummy"), wxDefaultPosition, wxSize( -1,-1 ), wxTE_READONLY|wxNO_BORDER );
- m_textCtrlStatus->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- bSizer1811->Add( m_textCtrlStatus, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxLEFT, 5 );
-
-
- bSizer173->Add( bSizer1811, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
-
- m_gauge1 = new wxGauge( m_panelProgress, wxID_ANY, 100, wxDefaultPosition, wxSize( -1,14 ), wxGA_HORIZONTAL );
- bSizer173->Add( m_gauge1, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
-
- bSizer171 = new wxBoxSizer( wxHORIZONTAL );
-
- wxFlexGridSizer* fgSizer10;
- fgSizer10 = new wxFlexGridSizer( 0, 2, 0, 5 );
- fgSizer10->SetFlexibleDirection( wxBOTH );
- fgSizer10->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
-
- m_staticTextLabelItemsProc = new wxStaticText( m_panelProgress, wxID_ANY, _("Items processed:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextLabelItemsProc->Wrap( -1 );
- m_staticTextLabelItemsProc->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
-
- fgSizer10->Add( m_staticTextLabelItemsProc, 0, wxALIGN_BOTTOM, 5 );
-
- bSizerItemsProc = new wxBoxSizer( wxHORIZONTAL );
-
- m_staticTextProcessedObj = new wxStaticText( m_panelProgress, wxID_ANY, _("dummy"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_staticTextProcessedObj->Wrap( -1 );
- m_staticTextProcessedObj->SetFont( wxFont( 9, 70, 90, 92, false, wxEmptyString ) );
-
- bSizerItemsProc->Add( m_staticTextProcessedObj, 0, wxALIGN_BOTTOM, 5 );
-
- m_staticTextDataProcessed = new wxStaticText( m_panelProgress, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextDataProcessed->Wrap( -1 );
- m_staticTextDataProcessed->SetFont( wxFont( 9, 70, 90, 90, false, wxEmptyString ) );
-
- bSizerItemsProc->Add( m_staticTextDataProcessed, 0, wxALIGN_BOTTOM|wxLEFT, 5 );
-
-
- fgSizer10->Add( bSizerItemsProc, 0, wxALIGN_BOTTOM, 5 );
-
- m_staticTextLabelItemsRem = new wxStaticText( m_panelProgress, wxID_ANY, _("Items remaining:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextLabelItemsRem->Wrap( -1 );
- m_staticTextLabelItemsRem->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
-
- fgSizer10->Add( m_staticTextLabelItemsRem, 0, wxALIGN_BOTTOM, 5 );
-
- bSizerItemsRem = new wxBoxSizer( wxHORIZONTAL );
-
- m_staticTextRemainingObj = new wxStaticText( m_panelProgress, wxID_ANY, _("dummy"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_staticTextRemainingObj->Wrap( -1 );
- m_staticTextRemainingObj->SetFont( wxFont( 9, 70, 90, 92, false, wxEmptyString ) );
-
- bSizerItemsRem->Add( m_staticTextRemainingObj, 0, wxALIGN_BOTTOM, 5 );
-
- m_staticTextDataRemaining = new wxStaticText( m_panelProgress, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextDataRemaining->Wrap( -1 );
- m_staticTextDataRemaining->SetFont( wxFont( 9, 70, 90, 90, false, wxEmptyString ) );
-
- bSizerItemsRem->Add( m_staticTextDataRemaining, 0, wxALIGN_BOTTOM|wxLEFT, 5 );
-
-
- fgSizer10->Add( bSizerItemsRem, 0, wxALIGN_BOTTOM, 5 );
-
- m_staticText84 = new wxStaticText( m_panelProgress, wxID_ANY, _("Speed:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText84->Wrap( -1 );
- m_staticText84->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
-
- fgSizer10->Add( m_staticText84, 0, wxALIGN_BOTTOM, 5 );
-
- m_staticTextSpeed = new wxStaticText( m_panelProgress, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextSpeed->Wrap( -1 );
- m_staticTextSpeed->SetFont( wxFont( 9, 70, 90, 92, false, wxEmptyString ) );
-
- fgSizer10->Add( m_staticTextSpeed, 0, wxALIGN_BOTTOM, 5 );
-
- m_staticTextLabelRemTime = new wxStaticText( m_panelProgress, wxID_ANY, _("Time remaining:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextLabelRemTime->Wrap( -1 );
- m_staticTextLabelRemTime->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
-
- fgSizer10->Add( m_staticTextLabelRemTime, 0, wxALIGN_BOTTOM, 5 );
-
- m_staticTextRemTime = new wxStaticText( m_panelProgress, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextRemTime->Wrap( -1 );
- m_staticTextRemTime->SetFont( wxFont( 9, 70, 90, 92, false, wxEmptyString ) );
-
- fgSizer10->Add( m_staticTextRemTime, 0, wxALIGN_BOTTOM, 5 );
-
- m_staticTextLabelElapsedTime = new wxStaticText( m_panelProgress, wxID_ANY, _("Time elapsed:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextLabelElapsedTime->Wrap( -1 );
- m_staticTextLabelElapsedTime->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
-
- fgSizer10->Add( m_staticTextLabelElapsedTime, 0, wxALIGN_BOTTOM, 5 );
-
- m_staticTextTimeElapsed = new wxStaticText( m_panelProgress, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextTimeElapsed->Wrap( -1 );
- m_staticTextTimeElapsed->SetFont( wxFont( 9, 70, 90, 92, false, wxEmptyString ) );
-
- fgSizer10->Add( m_staticTextTimeElapsed, 0, wxALIGN_BOTTOM, 5 );
-
-
- bSizer171->Add( fgSizer10, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 10 );
-
-
- bSizer171->Add( 10, 0, 0, 0, 5 );
-
- m_panelGraph = new zen::Graph2D( m_panelProgress, wxID_ANY, wxDefaultPosition, wxSize( 340,130 ), wxTAB_TRAVERSAL );
- m_panelGraph->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- bSizer171->Add( m_panelGraph, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
-
- bSizer173->Add( bSizer171, 1, wxEXPAND|wxTOP|wxLEFT, 5 );
-
-
- m_panelProgress->SetSizer( bSizer173 );
- m_panelProgress->Layout();
- bSizer173->Fit( m_panelProgress );
- bSizerTop->Add( m_panelProgress, 1, wxEXPAND, 5 );
-
- bSizerFinalStat = new wxBoxSizer( wxVERTICAL );
-
- m_listbookResult = new wxListbook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLB_TOP );
- wxSize m_listbookResultImageSize = wxSize( 180,1 );
- int m_listbookResultIndex = 0;
- wxImageList* m_listbookResultImages = new wxImageList( m_listbookResultImageSize.GetWidth(), m_listbookResultImageSize.GetHeight() );
- m_listbookResult->AssignImageList( m_listbookResultImages );
- wxBitmap m_listbookResultBitmap;
- wxImage m_listbookResultImage;
-
- bSizerFinalStat->Add( m_listbookResult, 1, wxEXPAND, 5 );
-
-
- bSizerTop->Add( bSizerFinalStat, 1, wxEXPAND, 5 );
-
- m_staticline12 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizerTop->Add( m_staticline12, 0, wxEXPAND, 5 );
-
- m_panelFooter = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panelFooter->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
-
- wxBoxSizer* bSizer182;
- bSizer182 = new wxBoxSizer( wxVERTICAL );
-
- bSizerExecFinished = new wxBoxSizer( wxHORIZONTAL );
-
- m_staticText87 = new wxStaticText( m_panelFooter, wxID_ANY, _("On completion:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText87->Wrap( -1 );
- m_staticText87->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 90, false, wxEmptyString ) );
-
- bSizerExecFinished->Add( m_staticText87, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
-
- m_comboBoxExecFinished = new ExecFinishedBox( m_panelFooter, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
- bSizerExecFinished->Add( m_comboBoxExecFinished, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer182->Add( bSizerExecFinished, 0, wxTOP|wxRIGHT|wxLEFT|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
-
- bSizer28 = new wxBoxSizer( wxHORIZONTAL );
-
-
- bSizer28->Add( 0, 0, 1, 0, 5 );
-
- m_buttonOK = new wxButton( m_panelFooter, wxID_OK, _("OK"), wxDefaultPosition, wxSize( 100,30 ), 0 );
- m_buttonOK->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
- m_buttonOK->Enable( false );
-
- bSizer28->Add( m_buttonOK, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
-
- m_buttonPause = new wxButton( m_panelFooter, wxID_ANY, _("&Pause"), wxDefaultPosition, wxSize( 100,30 ), 0 );
- m_buttonPause->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
-
- bSizer28->Add( m_buttonPause, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
-
- m_buttonAbort = new wxButton( m_panelFooter, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( 100,30 ), 0 );
- m_buttonAbort->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
-
- bSizer28->Add( m_buttonAbort, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
-
-
- bSizer28->Add( 0, 0, 1, wxEXPAND, 5 );
-
-
- bSizer182->Add( bSizer28, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
-
-
- m_panelFooter->SetSizer( bSizer182 );
- m_panelFooter->Layout();
- bSizer182->Fit( m_panelFooter );
- bSizerTop->Add( m_panelFooter, 0, wxEXPAND, 5 );
-
-
- this->SetSizer( bSizerTop );
- this->Layout();
- bSizerTop->Fit( this );
-
- this->Centre( wxBOTH );
-
- // Connect Events
- this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( SyncStatusDlgGenerated::OnClose ) );
- this->Connect( wxEVT_ICONIZE, wxIconizeEventHandler( SyncStatusDlgGenerated::OnIconize ) );
- m_buttonOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncStatusDlgGenerated::OnOkay ), NULL, this );
- m_buttonPause->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncStatusDlgGenerated::OnPause ), NULL, this );
- m_buttonAbort->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncStatusDlgGenerated::OnAbort ), NULL, this );
+ this->SetSizeHints( wxSize( 470,260 ), wxDefaultSize );
+ this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ bSizerTop = new wxBoxSizer( wxVERTICAL );
+
+ m_panelHeader = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panelHeader->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+
+ wxBoxSizer* bSizer181;
+ bSizer181 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer42;
+ bSizer42 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bitmapStatus = new wxStaticBitmap( m_panelHeader, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 32,32 ), 0 );
+ bSizer42->Add( m_bitmapStatus, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+
+ m_staticTextStatus = new wxStaticText( m_panelHeader, wxID_ANY, _("Synchronizing..."), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextStatus->Wrap( -1 );
+ m_staticTextStatus->SetFont( wxFont( 14, 70, 90, 92, false, wxEmptyString ) );
+
+ bSizer42->Add( m_staticTextStatus, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5 );
+
+ m_animationControl1 = new wxAnimationCtrl( m_panelHeader, wxID_ANY, wxNullAnimation, wxDefaultPosition, wxDefaultSize, wxAC_DEFAULT_STYLE );
+ m_animationControl1->SetMinSize( wxSize( 45,45 ) );
+
+ bSizer42->Add( m_animationControl1, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
+
+
+ bSizer181->Add( bSizer42, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 );
+
+
+ m_panelHeader->SetSizer( bSizer181 );
+ m_panelHeader->Layout();
+ bSizer181->Fit( m_panelHeader );
+ bSizerTop->Add( m_panelHeader, 0, wxEXPAND, 5 );
+
+ m_staticlineHeader = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizerTop->Add( m_staticlineHeader, 0, wxEXPAND, 5 );
+
+ m_panelProgress = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ wxBoxSizer* bSizer173;
+ bSizer173 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer1811;
+ bSizer1811 = new wxBoxSizer( wxVERTICAL );
+
+ m_textCtrlStatus = new wxTextCtrl( m_panelProgress, wxID_ANY, _("dummy"), wxDefaultPosition, wxSize( -1,-1 ), wxTE_READONLY|wxNO_BORDER );
+ m_textCtrlStatus->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ bSizer1811->Add( m_textCtrlStatus, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxLEFT, 5 );
+
+
+ bSizer173->Add( bSizer1811, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
+
+ m_gauge1 = new wxGauge( m_panelProgress, wxID_ANY, 100, wxDefaultPosition, wxSize( -1,14 ), wxGA_HORIZONTAL );
+ bSizer173->Add( m_gauge1, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
+
+ bSizer171 = new wxBoxSizer( wxHORIZONTAL );
+
+ wxFlexGridSizer* fgSizer10;
+ fgSizer10 = new wxFlexGridSizer( 0, 2, 0, 5 );
+ fgSizer10->SetFlexibleDirection( wxBOTH );
+ fgSizer10->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+
+ m_staticTextLabelItemsProc = new wxStaticText( m_panelProgress, wxID_ANY, _("Items processed:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextLabelItemsProc->Wrap( -1 );
+ m_staticTextLabelItemsProc->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
+
+ fgSizer10->Add( m_staticTextLabelItemsProc, 0, wxALIGN_BOTTOM, 5 );
+
+ bSizerItemsProc = new wxBoxSizer( wxHORIZONTAL );
+
+ m_staticTextProcessedObj = new wxStaticText( m_panelProgress, wxID_ANY, _("dummy"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_staticTextProcessedObj->Wrap( -1 );
+ m_staticTextProcessedObj->SetFont( wxFont( 9, 70, 90, 92, false, wxEmptyString ) );
+
+ bSizerItemsProc->Add( m_staticTextProcessedObj, 0, wxALIGN_BOTTOM, 5 );
+
+ m_staticTextDataProcessed = new wxStaticText( m_panelProgress, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextDataProcessed->Wrap( -1 );
+ m_staticTextDataProcessed->SetFont( wxFont( 9, 70, 90, 90, false, wxEmptyString ) );
+
+ bSizerItemsProc->Add( m_staticTextDataProcessed, 0, wxALIGN_BOTTOM|wxLEFT, 5 );
+
+
+ fgSizer10->Add( bSizerItemsProc, 0, wxALIGN_BOTTOM, 5 );
+
+ m_staticTextLabelItemsRem = new wxStaticText( m_panelProgress, wxID_ANY, _("Items remaining:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextLabelItemsRem->Wrap( -1 );
+ m_staticTextLabelItemsRem->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
+
+ fgSizer10->Add( m_staticTextLabelItemsRem, 0, wxALIGN_BOTTOM, 5 );
+
+ bSizerItemsRem = new wxBoxSizer( wxHORIZONTAL );
+
+ m_staticTextRemainingObj = new wxStaticText( m_panelProgress, wxID_ANY, _("dummy"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_staticTextRemainingObj->Wrap( -1 );
+ m_staticTextRemainingObj->SetFont( wxFont( 9, 70, 90, 92, false, wxEmptyString ) );
+
+ bSizerItemsRem->Add( m_staticTextRemainingObj, 0, wxALIGN_BOTTOM, 5 );
+
+ m_staticTextDataRemaining = new wxStaticText( m_panelProgress, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextDataRemaining->Wrap( -1 );
+ m_staticTextDataRemaining->SetFont( wxFont( 9, 70, 90, 90, false, wxEmptyString ) );
+
+ bSizerItemsRem->Add( m_staticTextDataRemaining, 0, wxALIGN_BOTTOM|wxLEFT, 5 );
+
+
+ fgSizer10->Add( bSizerItemsRem, 0, wxALIGN_BOTTOM, 5 );
+
+ m_staticText84 = new wxStaticText( m_panelProgress, wxID_ANY, _("Speed:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText84->Wrap( -1 );
+ m_staticText84->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
+
+ fgSizer10->Add( m_staticText84, 0, wxALIGN_BOTTOM, 5 );
+
+ m_staticTextSpeed = new wxStaticText( m_panelProgress, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextSpeed->Wrap( -1 );
+ m_staticTextSpeed->SetFont( wxFont( 9, 70, 90, 92, false, wxEmptyString ) );
+
+ fgSizer10->Add( m_staticTextSpeed, 0, wxALIGN_BOTTOM, 5 );
+
+ m_staticTextLabelRemTime = new wxStaticText( m_panelProgress, wxID_ANY, _("Time remaining:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextLabelRemTime->Wrap( -1 );
+ m_staticTextLabelRemTime->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
+
+ fgSizer10->Add( m_staticTextLabelRemTime, 0, wxALIGN_BOTTOM, 5 );
+
+ m_staticTextRemTime = new wxStaticText( m_panelProgress, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextRemTime->Wrap( -1 );
+ m_staticTextRemTime->SetFont( wxFont( 9, 70, 90, 92, false, wxEmptyString ) );
+
+ fgSizer10->Add( m_staticTextRemTime, 0, wxALIGN_BOTTOM, 5 );
+
+ m_staticTextLabelElapsedTime = new wxStaticText( m_panelProgress, wxID_ANY, _("Time elapsed:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextLabelElapsedTime->Wrap( -1 );
+ m_staticTextLabelElapsedTime->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
+
+ fgSizer10->Add( m_staticTextLabelElapsedTime, 0, wxALIGN_BOTTOM, 5 );
+
+ m_staticTextTimeElapsed = new wxStaticText( m_panelProgress, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextTimeElapsed->Wrap( -1 );
+ m_staticTextTimeElapsed->SetFont( wxFont( 9, 70, 90, 92, false, wxEmptyString ) );
+
+ fgSizer10->Add( m_staticTextTimeElapsed, 0, wxALIGN_BOTTOM, 5 );
+
+
+ bSizer171->Add( fgSizer10, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 10 );
+
+
+ bSizer171->Add( 10, 0, 0, 0, 5 );
+
+ m_panelGraph = new zen::Graph2D( m_panelProgress, wxID_ANY, wxDefaultPosition, wxSize( 340,130 ), wxTAB_TRAVERSAL );
+ m_panelGraph->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ bSizer171->Add( m_panelGraph, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+
+ bSizer173->Add( bSizer171, 1, wxEXPAND|wxTOP|wxLEFT, 5 );
+
+
+ m_panelProgress->SetSizer( bSizer173 );
+ m_panelProgress->Layout();
+ bSizer173->Fit( m_panelProgress );
+ bSizerTop->Add( m_panelProgress, 1, wxEXPAND, 5 );
+
+ bSizerFinalStat = new wxBoxSizer( wxVERTICAL );
+
+ m_listbookResult = new wxListbook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLB_TOP );
+ wxSize m_listbookResultImageSize = wxSize( 180,1 );
+ int m_listbookResultIndex = 0;
+ wxImageList* m_listbookResultImages = new wxImageList( m_listbookResultImageSize.GetWidth(), m_listbookResultImageSize.GetHeight() );
+ m_listbookResult->AssignImageList( m_listbookResultImages );
+ wxBitmap m_listbookResultBitmap;
+ wxImage m_listbookResultImage;
+
+ bSizerFinalStat->Add( m_listbookResult, 1, wxEXPAND, 5 );
+
+
+ bSizerTop->Add( bSizerFinalStat, 1, wxEXPAND, 5 );
+
+ m_staticline12 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizerTop->Add( m_staticline12, 0, wxEXPAND, 5 );
+
+ m_panelFooter = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panelFooter->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+
+ wxBoxSizer* bSizer182;
+ bSizer182 = new wxBoxSizer( wxVERTICAL );
+
+ bSizerExecFinished = new wxBoxSizer( wxHORIZONTAL );
+
+ m_staticText87 = new wxStaticText( m_panelFooter, wxID_ANY, _("On completion:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText87->Wrap( -1 );
+ m_staticText87->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 90, false, wxEmptyString ) );
+
+ bSizerExecFinished->Add( m_staticText87, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+
+ m_comboBoxExecFinished = new ExecFinishedBox( m_panelFooter, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
+ bSizerExecFinished->Add( m_comboBoxExecFinished, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer182->Add( bSizerExecFinished, 0, wxTOP|wxRIGHT|wxLEFT|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
+
+ bSizer28 = new wxBoxSizer( wxHORIZONTAL );
+
+
+ bSizer28->Add( 0, 0, 1, 0, 5 );
+
+ m_buttonOK = new wxButton( m_panelFooter, wxID_OK, _("OK"), wxDefaultPosition, wxSize( 100,30 ), 0 );
+ m_buttonOK->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
+ m_buttonOK->Enable( false );
+
+ bSizer28->Add( m_buttonOK, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+ m_buttonPause = new wxButton( m_panelFooter, wxID_ANY, _("&Pause"), wxDefaultPosition, wxSize( 100,30 ), 0 );
+ m_buttonPause->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
+
+ bSizer28->Add( m_buttonPause, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+ m_buttonAbort = new wxButton( m_panelFooter, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( 100,30 ), 0 );
+ m_buttonAbort->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
+
+ bSizer28->Add( m_buttonAbort, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+
+
+ bSizer28->Add( 0, 0, 1, wxEXPAND, 5 );
+
+
+ bSizer182->Add( bSizer28, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
+
+
+ m_panelFooter->SetSizer( bSizer182 );
+ m_panelFooter->Layout();
+ bSizer182->Fit( m_panelFooter );
+ bSizerTop->Add( m_panelFooter, 0, wxEXPAND, 5 );
+
+
+ this->SetSizer( bSizerTop );
+ this->Layout();
+ bSizerTop->Fit( this );
+
+ this->Centre( wxBOTH );
+
+ // Connect Events
+ this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( SyncStatusDlgGenerated::OnClose ) );
+ this->Connect( wxEVT_ICONIZE, wxIconizeEventHandler( SyncStatusDlgGenerated::OnIconize ) );
+ m_buttonOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncStatusDlgGenerated::OnOkay ), NULL, this );
+ m_buttonPause->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncStatusDlgGenerated::OnPause ), NULL, this );
+ m_buttonAbort->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncStatusDlgGenerated::OnAbort ), NULL, this );
}
SyncStatusDlgGenerated::~SyncStatusDlgGenerated()
{
- // Disconnect Events
- this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( SyncStatusDlgGenerated::OnClose ) );
- this->Disconnect( wxEVT_ICONIZE, wxIconizeEventHandler( SyncStatusDlgGenerated::OnIconize ) );
- m_buttonOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncStatusDlgGenerated::OnOkay ), NULL, this );
- m_buttonPause->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncStatusDlgGenerated::OnPause ), NULL, this );
- m_buttonAbort->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncStatusDlgGenerated::OnAbort ), NULL, this );
-
+ // Disconnect Events
+ this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( SyncStatusDlgGenerated::OnClose ) );
+ this->Disconnect( wxEVT_ICONIZE, wxIconizeEventHandler( SyncStatusDlgGenerated::OnIconize ) );
+ m_buttonOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncStatusDlgGenerated::OnOkay ), NULL, this );
+ m_buttonPause->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncStatusDlgGenerated::OnPause ), NULL, this );
+ m_buttonAbort->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncStatusDlgGenerated::OnAbort ), NULL, this );
+
}
LogControlGenerated::LogControlGenerated( 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* bSizer153;
- bSizer153 = new wxBoxSizer( wxHORIZONTAL );
-
- wxBoxSizer* bSizer154;
- bSizer154 = new wxBoxSizer( wxVERTICAL );
-
- m_bpButtonErrors = new ToggleButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 48,48 ), wxBU_AUTODRAW );
- bSizer154->Add( m_bpButtonErrors, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bpButtonWarnings = new ToggleButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 48,48 ), wxBU_AUTODRAW );
- bSizer154->Add( m_bpButtonWarnings, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bpButtonInfo = new ToggleButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 48,48 ), 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_textCtrlInfo = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), wxTE_DONTWRAP|wxTE_MULTILINE|wxTE_READONLY|wxNO_BORDER );
- bSizer153->Add( m_textCtrlInfo, 1, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- this->SetSizer( bSizer153 );
- this->Layout();
- bSizer153->Fit( this );
-
- // Connect Events
- m_bpButtonErrors->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( LogControlGenerated::OnErrors ), NULL, this );
- m_bpButtonWarnings->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( LogControlGenerated::OnWarnings ), NULL, this );
- m_bpButtonInfo->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( LogControlGenerated::OnInfo ), NULL, this );
+ this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+
+ wxBoxSizer* bSizer153;
+ bSizer153 = new wxBoxSizer( wxHORIZONTAL );
+
+ wxBoxSizer* bSizer154;
+ bSizer154 = new wxBoxSizer( wxVERTICAL );
+
+ m_bpButtonErrors = new ToggleButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 48,48 ), wxBU_AUTODRAW );
+ bSizer154->Add( m_bpButtonErrors, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bpButtonWarnings = new ToggleButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 48,48 ), wxBU_AUTODRAW );
+ bSizer154->Add( m_bpButtonWarnings, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bpButtonInfo = new ToggleButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 48,48 ), 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_textCtrlInfo = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), wxTE_DONTWRAP|wxTE_MULTILINE|wxTE_READONLY|wxNO_BORDER );
+ bSizer153->Add( m_textCtrlInfo, 1, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ this->SetSizer( bSizer153 );
+ this->Layout();
+ bSizer153->Fit( this );
+
+ // Connect Events
+ m_bpButtonErrors->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( LogControlGenerated::OnErrors ), NULL, this );
+ m_bpButtonWarnings->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( LogControlGenerated::OnWarnings ), NULL, this );
+ m_bpButtonInfo->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( LogControlGenerated::OnInfo ), NULL, this );
}
LogControlGenerated::~LogControlGenerated()
{
- // Disconnect Events
- m_bpButtonErrors->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( LogControlGenerated::OnErrors ), NULL, this );
- m_bpButtonWarnings->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( LogControlGenerated::OnWarnings ), NULL, this );
- m_bpButtonInfo->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( LogControlGenerated::OnInfo ), NULL, this );
-
+ // Disconnect Events
+ m_bpButtonErrors->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( LogControlGenerated::OnErrors ), NULL, this );
+ m_bpButtonWarnings->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( LogControlGenerated::OnWarnings ), NULL, this );
+ m_bpButtonInfo->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( LogControlGenerated::OnInfo ), NULL, this );
+
}
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 );
-
- wxBoxSizer* bSizer31;
- bSizer31 = new wxBoxSizer( wxVERTICAL );
-
-
- bSizer31->Add( 0, 5, 0, 0, 5 );
-
- wxBoxSizer* bSizer53;
- bSizer53 = new wxBoxSizer( wxVERTICAL );
-
- m_panelLogo = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxSize( -1,-1 ), wxSIMPLE_BORDER|wxTAB_TRAVERSAL );
- m_panelLogo->SetBackgroundColour( wxColour( 255, 255, 255 ) );
-
- wxBoxSizer* bSizer36;
- bSizer36 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bitmap11 = new wxStaticBitmap( m_panelLogo, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
- bSizer36->Add( m_bitmap11, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- m_panelLogo->SetSizer( bSizer36 );
- m_panelLogo->Layout();
- bSizer36->Fit( m_panelLogo );
- bSizer53->Add( m_panelLogo, 0, wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxTOP|wxBOTTOM, 5 );
-
- m_build = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_build->Wrap( -1 );
- bSizer53->Add( m_build, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
-
-
- bSizer53->Add( 0, 5, 0, 0, 5 );
-
- m_panel33 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxDOUBLE_BORDER|wxTAB_TRAVERSAL );
- m_panel33->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- bSizerCodeInfo = new wxBoxSizer( wxVERTICAL );
-
- m_staticText72 = new wxStaticText( m_panel33, wxID_ANY, _("Source code written in C++ utilizing:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText72->Wrap( -1 );
- m_staticText72->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- bSizerCodeInfo->Add( m_staticText72, 0, wxTOP|wxBOTTOM|wxLEFT, 5 );
-
- wxBoxSizer* bSizer167;
- bSizer167 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer171;
- bSizer171 = new wxBoxSizer( wxHORIZONTAL );
-
- m_hyperlink9 = new wxHyperlinkCtrl( m_panel33, wxID_ANY, _("MinGW"), wxT("http://www.mingw.org"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- m_hyperlink9->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- bSizer171->Add( m_hyperlink9, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
-
- m_hyperlink11 = new wxHyperlinkCtrl( m_panel33, wxID_ANY, _("MS Visual C++"), wxT("http://msdn.microsoft.com/library/60k1461a.aspx"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- m_hyperlink11->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- bSizer171->Add( m_hyperlink11, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
-
- m_hyperlink10 = new wxHyperlinkCtrl( m_panel33, wxID_ANY, _("Code::Blocks"), wxT("http://www.codeblocks.org"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- m_hyperlink10->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- bSizer171->Add( m_hyperlink10, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
-
- m_hyperlink13 = new wxHyperlinkCtrl( m_panel33, wxID_ANY, _("Boost"), wxT("http://www.boost.org"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- m_hyperlink13->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- bSizer171->Add( m_hyperlink13, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
-
- m_hyperlink7 = new wxHyperlinkCtrl( m_panel33, wxID_ANY, _("wxWidgets"), wxT("http://www.wxwidgets.org"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- m_hyperlink7->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- bSizer171->Add( m_hyperlink7, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
-
- m_hyperlink16 = new wxHyperlinkCtrl( m_panel33, wxID_ANY, _("Artistic Style"), wxT("http://astyle.sourceforge.net"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- m_hyperlink16->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- bSizer171->Add( m_hyperlink16, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
-
-
- bSizer167->Add( bSizer171, 0, wxALIGN_CENTER_HORIZONTAL|wxBOTTOM, 5 );
-
- wxBoxSizer* bSizer172;
- bSizer172 = new wxBoxSizer( wxHORIZONTAL );
-
- m_hyperlink8 = new wxHyperlinkCtrl( m_panel33, wxID_ANY, _("Loki"), wxT("http://loki-lib.sourceforge.net/"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- m_hyperlink8->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- bSizer172->Add( m_hyperlink8, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
-
- m_hyperlink15 = new wxHyperlinkCtrl( m_panel33, wxID_ANY, _("zenXML"), wxT("http://zenxml.sourceforge.net/"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- m_hyperlink15->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- bSizer172->Add( m_hyperlink15, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
-
- m_hyperlink12 = new wxHyperlinkCtrl( m_panel33, wxID_ANY, _("Google Test"), wxT("http://code.google.com/p/googletest"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- m_hyperlink12->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- bSizer172->Add( m_hyperlink12, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
-
- m_hyperlink18 = new wxHyperlinkCtrl( m_panel33, wxID_ANY, _("Unicode NSIS"), wxT("http://www.scratchpaper.com"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- m_hyperlink18->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- bSizer172->Add( m_hyperlink18, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
-
- m_hyperlink14 = new wxHyperlinkCtrl( m_panel33, wxID_ANY, _("wxFormBuilder"), wxT("http://wxformbuilder.org"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- m_hyperlink14->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- bSizer172->Add( m_hyperlink14, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
-
-
- bSizer167->Add( bSizer172, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
-
-
- bSizerCodeInfo->Add( bSizer167, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_hyperlink21 = new wxHyperlinkCtrl( m_panel33, wxID_ANY, _("- ZenJu -"), wxT("mailto:zenju@gmx.de"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- m_hyperlink21->SetFont( wxFont( 10, 74, 93, 92, false, wxT("Segoe Print") ) );
- m_hyperlink21->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- m_hyperlink21->SetToolTip( _("zenju@gmx.de") );
-
- bSizerCodeInfo->Add( m_hyperlink21, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
-
-
- m_panel33->SetSizer( bSizerCodeInfo );
- m_panel33->Layout();
- bSizerCodeInfo->Fit( m_panel33 );
- bSizer53->Add( m_panel33, 0, wxBOTTOM|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
-
- m_panel40 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panel40->SetBackgroundColour( wxColour( 153, 170, 187 ) );
-
- wxBoxSizer* bSizer183;
- bSizer183 = new wxBoxSizer( wxVERTICAL );
-
- m_panel39 = new wxPanel( m_panel40, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panel39->SetBackgroundColour( wxColour( 221, 221, 255 ) );
-
- wxBoxSizer* bSizer184;
- bSizer184 = new wxBoxSizer( wxHORIZONTAL );
-
- 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, 93, 92, false, wxEmptyString ) );
- m_staticText83->SetForegroundColour( wxColour( 0, 0, 0 ) );
-
- bSizer178->Add( m_staticText83, 0, wxALL, 5 );
-
- m_hyperlink3 = new wxHyperlinkCtrl( m_panel39, wxID_ANY, _("Donate with PayPal"), wxT("https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=zenju@gmx.de&no_shipping=1&lc=US&currency_code=EUR"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- m_hyperlink3->SetFont( wxFont( 11, 70, 90, 92, true, wxEmptyString ) );
- m_hyperlink3->SetBackgroundColour( wxColour( 221, 221, 255 ) );
- m_hyperlink3->SetToolTip( _("https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=zenju@gmx.de&no_shipping=1&lc=US&currency_code=EUR") );
-
- bSizer178->Add( m_hyperlink3, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
-
- bSizer184->Add( bSizer178, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bitmapPaypal = new wxStaticBitmap( m_panel39, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- m_bitmapPaypal->SetToolTip( _("Donate with PayPal") );
-
- bSizer184->Add( m_bitmapPaypal, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
-
-
- m_panel39->SetSizer( bSizer184 );
- m_panel39->Layout();
- bSizer184->Fit( m_panel39 );
- bSizer183->Add( m_panel39, 0, wxEXPAND|wxALL, 5 );
-
-
- m_panel40->SetSizer( bSizer183 );
- m_panel40->Layout();
- bSizer183->Fit( m_panel40 );
- bSizer53->Add( m_panel40, 0, wxEXPAND|wxBOTTOM|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_scrolledWindowTranslators = new wxScrolledWindow( this, wxID_ANY, wxDefaultPosition, wxSize( -1,-1 ), wxDOUBLE_BORDER|wxHSCROLL|wxVSCROLL );
- m_scrolledWindowTranslators->SetScrollRate( 5, 5 );
- m_scrolledWindowTranslators->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- m_scrolledWindowTranslators->SetMinSize( wxSize( -1,180 ) );
-
- bSizerTranslators = new wxBoxSizer( wxVERTICAL );
-
- m_staticText54 = new wxStaticText( m_scrolledWindowTranslators, wxID_ANY, _("Many thanks for localization:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText54->Wrap( -1 );
- m_staticText54->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- bSizerTranslators->Add( m_staticText54, 0, wxALIGN_CENTER_HORIZONTAL|wxTOP|wxBOTTOM, 5 );
-
-
- bSizerTranslators->Add( 0, 5, 0, 0, 5 );
-
- fgSizerTranslators = new wxFlexGridSizer( 50, 3, 2, 20 );
- fgSizerTranslators->SetFlexibleDirection( wxBOTH );
- fgSizerTranslators->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
-
-
- bSizerTranslators->Add( fgSizerTranslators, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
-
-
- m_scrolledWindowTranslators->SetSizer( bSizerTranslators );
- m_scrolledWindowTranslators->Layout();
- bSizerTranslators->Fit( m_scrolledWindowTranslators );
- bSizer53->Add( m_scrolledWindowTranslators, 0, wxALIGN_CENTER_HORIZONTAL|wxBOTTOM|wxEXPAND, 5 );
-
- wxStaticBoxSizer* sbSizer29;
- sbSizer29 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Feedback and suggestions are welcome") ), wxHORIZONTAL );
-
- wxBoxSizer* bSizer170;
- bSizer170 = new wxBoxSizer( wxHORIZONTAL );
-
-
- bSizer170->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_hyperlink1 = new wxHyperlinkCtrl( this, wxID_ANY, _("Homepage"), wxT("http://sourceforge.net/projects/freefilesync/"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- m_hyperlink1->SetFont( wxFont( 10, 70, 90, 92, true, wxEmptyString ) );
- m_hyperlink1->SetToolTip( _("http://sourceforge.net/projects/freefilesync/") );
-
- bSizer170->Add( m_hyperlink1, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bitmap9 = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_bitmap9->SetToolTip( _("FreeFileSync at Sourceforge") );
-
- bSizer170->Add( m_bitmap9, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
-
-
- bSizer170->Add( 0, 0, 1, wxEXPAND, 5 );
-
-
- sbSizer29->Add( bSizer170, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
- wxBoxSizer* bSizer1711;
- bSizer1711 = new wxBoxSizer( wxHORIZONTAL );
-
-
- bSizer1711->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_hyperlink2 = new wxHyperlinkCtrl( this, wxID_ANY, _("Email"), wxT("mailto:zenju@gmx.de"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- m_hyperlink2->SetFont( wxFont( 10, 70, 90, 92, true, wxEmptyString ) );
- m_hyperlink2->SetToolTip( _("zenju@gmx.de") );
-
- bSizer1711->Add( m_hyperlink2, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bitmap10 = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_bitmap10->SetToolTip( _("Email") );
-
- bSizer1711->Add( m_bitmap10, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
-
-
- bSizer1711->Add( 0, 0, 1, wxEXPAND, 5 );
-
-
- sbSizer29->Add( bSizer1711, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer53->Add( sbSizer29, 0, wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxBOTTOM, 5 );
-
- wxStaticBoxSizer* sbSizer14;
- sbSizer14 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Published under the GNU General Public License") ), wxHORIZONTAL );
-
-
- sbSizer14->Add( 0, 0, 1, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bitmap13 = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
- sbSizer14->Add( m_bitmap13, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_hyperlink5 = new wxHyperlinkCtrl( this, wxID_ANY, _("http://www.gnu.org/licenses/gpl.html"), wxT("http://www.gnu.org/licenses/gpl.html"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- sbSizer14->Add( m_hyperlink5, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- sbSizer14->Add( 0, 0, 1, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer53->Add( sbSizer14, 0, wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
-
-
- bSizer31->Add( bSizer53, 0, wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxRIGHT|wxLEFT, 25 );
-
- m_buttonOkay = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxSize( 100,30 ), 0 );
- m_buttonOkay->SetDefault();
- m_buttonOkay->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
-
- bSizer31->Add( m_buttonOkay, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
-
-
- this->SetSizer( bSizer31 );
- this->Layout();
- bSizer31->Fit( this );
-
- this->Centre( wxBOTH );
-
- // Connect Events
- this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( AboutDlgGenerated::OnClose ) );
- m_buttonOkay->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( AboutDlgGenerated::OnOK ), NULL, this );
+ this->SetSizeHints( wxDefaultSize, wxDefaultSize );
+
+ wxBoxSizer* bSizer31;
+ bSizer31 = new wxBoxSizer( wxVERTICAL );
+
+
+ bSizer31->Add( 0, 5, 0, 0, 5 );
+
+ wxBoxSizer* bSizer53;
+ bSizer53 = new wxBoxSizer( wxVERTICAL );
+
+ m_panelLogo = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxSize( -1,-1 ), wxSIMPLE_BORDER|wxTAB_TRAVERSAL );
+ m_panelLogo->SetBackgroundColour( wxColour( 255, 255, 255 ) );
+
+ wxBoxSizer* bSizer36;
+ bSizer36 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bitmap11 = new wxStaticBitmap( m_panelLogo, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizer36->Add( m_bitmap11, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ m_panelLogo->SetSizer( bSizer36 );
+ m_panelLogo->Layout();
+ bSizer36->Fit( m_panelLogo );
+ bSizer53->Add( m_panelLogo, 0, wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxTOP|wxBOTTOM, 5 );
+
+ m_build = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_build->Wrap( -1 );
+ bSizer53->Add( m_build, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+
+ bSizer53->Add( 0, 5, 0, 0, 5 );
+
+ m_panel33 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxDOUBLE_BORDER|wxTAB_TRAVERSAL );
+ m_panel33->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ bSizerCodeInfo = new wxBoxSizer( wxVERTICAL );
+
+ m_staticText72 = new wxStaticText( m_panel33, wxID_ANY, _("Source code written in C++ utilizing:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText72->Wrap( -1 );
+ m_staticText72->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ bSizerCodeInfo->Add( m_staticText72, 0, wxTOP|wxBOTTOM|wxLEFT, 5 );
+
+ wxBoxSizer* bSizer167;
+ bSizer167 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer171;
+ bSizer171 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_hyperlink9 = new wxHyperlinkCtrl( m_panel33, wxID_ANY, _("MinGW"), wxT("http://www.mingw.org"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ m_hyperlink9->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ bSizer171->Add( m_hyperlink9, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+
+ m_hyperlink11 = new wxHyperlinkCtrl( m_panel33, wxID_ANY, _("MS Visual C++"), wxT("http://msdn.microsoft.com/library/60k1461a.aspx"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ m_hyperlink11->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ bSizer171->Add( m_hyperlink11, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+
+ m_hyperlink10 = new wxHyperlinkCtrl( m_panel33, wxID_ANY, _("Code::Blocks"), wxT("http://www.codeblocks.org"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ m_hyperlink10->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ bSizer171->Add( m_hyperlink10, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+
+ m_hyperlink13 = new wxHyperlinkCtrl( m_panel33, wxID_ANY, _("Boost"), wxT("http://www.boost.org"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ m_hyperlink13->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ bSizer171->Add( m_hyperlink13, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+
+ m_hyperlink7 = new wxHyperlinkCtrl( m_panel33, wxID_ANY, _("wxWidgets"), wxT("http://www.wxwidgets.org"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ m_hyperlink7->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ bSizer171->Add( m_hyperlink7, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+
+ m_hyperlink16 = new wxHyperlinkCtrl( m_panel33, wxID_ANY, _("Artistic Style"), wxT("http://astyle.sourceforge.net"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ m_hyperlink16->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ bSizer171->Add( m_hyperlink16, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+
+
+ bSizer167->Add( bSizer171, 0, wxALIGN_CENTER_HORIZONTAL|wxBOTTOM, 5 );
+
+ wxBoxSizer* bSizer172;
+ bSizer172 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_hyperlink8 = new wxHyperlinkCtrl( m_panel33, wxID_ANY, _("Loki"), wxT("http://loki-lib.sourceforge.net/"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ m_hyperlink8->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ bSizer172->Add( m_hyperlink8, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+
+ m_hyperlink15 = new wxHyperlinkCtrl( m_panel33, wxID_ANY, _("zenXML"), wxT("http://zenxml.sourceforge.net/"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ m_hyperlink15->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ bSizer172->Add( m_hyperlink15, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+
+ m_hyperlink12 = new wxHyperlinkCtrl( m_panel33, wxID_ANY, _("Google Test"), wxT("http://code.google.com/p/googletest"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ m_hyperlink12->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ bSizer172->Add( m_hyperlink12, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+
+ m_hyperlink18 = new wxHyperlinkCtrl( m_panel33, wxID_ANY, _("Unicode NSIS"), wxT("http://www.scratchpaper.com"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ m_hyperlink18->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ bSizer172->Add( m_hyperlink18, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+
+ m_hyperlink14 = new wxHyperlinkCtrl( m_panel33, wxID_ANY, _("wxFormBuilder"), wxT("http://wxformbuilder.org"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ m_hyperlink14->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ bSizer172->Add( m_hyperlink14, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+
+
+ bSizer167->Add( bSizer172, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
+
+
+ bSizerCodeInfo->Add( bSizer167, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_hyperlink21 = new wxHyperlinkCtrl( m_panel33, wxID_ANY, _("- Zenju -"), wxT("mailto:zenju@gmx.de"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ m_hyperlink21->SetFont( wxFont( 10, 74, 93, 92, false, wxT("Segoe Print") ) );
+ m_hyperlink21->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_hyperlink21->SetToolTip( _("zenju@gmx.de") );
+
+ bSizerCodeInfo->Add( m_hyperlink21, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
+
+
+ m_panel33->SetSizer( bSizerCodeInfo );
+ m_panel33->Layout();
+ bSizerCodeInfo->Fit( m_panel33 );
+ bSizer53->Add( m_panel33, 0, wxBOTTOM|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
+
+ m_panel40 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panel40->SetBackgroundColour( wxColour( 153, 170, 187 ) );
+
+ wxBoxSizer* bSizer183;
+ bSizer183 = new wxBoxSizer( wxVERTICAL );
+
+ m_panel39 = new wxPanel( m_panel40, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panel39->SetBackgroundColour( wxColour( 221, 221, 255 ) );
+
+ wxBoxSizer* bSizer184;
+ bSizer184 = new wxBoxSizer( wxHORIZONTAL );
+
+ 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, 93, 92, false, wxEmptyString ) );
+ m_staticText83->SetForegroundColour( wxColour( 0, 0, 0 ) );
+
+ bSizer178->Add( m_staticText83, 0, wxALL, 5 );
+
+ m_hyperlink3 = new wxHyperlinkCtrl( m_panel39, wxID_ANY, _("Donate with PayPal"), wxT("https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=zenju@gmx.de&no_shipping=1&lc=US&currency_code=EUR"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ m_hyperlink3->SetFont( wxFont( 11, 70, 90, 92, true, wxEmptyString ) );
+ m_hyperlink3->SetBackgroundColour( wxColour( 221, 221, 255 ) );
+ m_hyperlink3->SetToolTip( _("https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=zenju@gmx.de&no_shipping=1&lc=US&currency_code=EUR") );
+
+ bSizer178->Add( m_hyperlink3, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+
+ bSizer184->Add( bSizer178, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_animCtrlWink = new wxAnimationCtrl( m_panel39, wxID_ANY, wxNullAnimation, wxDefaultPosition, wxSize( -1,-1 ), wxAC_DEFAULT_STYLE );
+ bSizer184->Add( m_animCtrlWink, 0, 0, 5 );
+
+
+ m_panel39->SetSizer( bSizer184 );
+ m_panel39->Layout();
+ bSizer184->Fit( m_panel39 );
+ bSizer183->Add( m_panel39, 0, wxEXPAND|wxALL, 5 );
+
+
+ m_panel40->SetSizer( bSizer183 );
+ m_panel40->Layout();
+ bSizer183->Fit( m_panel40 );
+ bSizer53->Add( m_panel40, 0, wxEXPAND|wxBOTTOM|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_scrolledWindowTranslators = new wxScrolledWindow( this, wxID_ANY, wxDefaultPosition, wxSize( -1,-1 ), wxDOUBLE_BORDER|wxHSCROLL|wxVSCROLL );
+ m_scrolledWindowTranslators->SetScrollRate( 5, 5 );
+ m_scrolledWindowTranslators->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_scrolledWindowTranslators->SetMinSize( wxSize( -1,180 ) );
+
+ bSizerTranslators = new wxBoxSizer( wxVERTICAL );
+
+ m_staticText54 = new wxStaticText( m_scrolledWindowTranslators, wxID_ANY, _("Many thanks for localization:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText54->Wrap( -1 );
+ m_staticText54->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ bSizerTranslators->Add( m_staticText54, 0, wxALIGN_CENTER_HORIZONTAL|wxTOP|wxBOTTOM, 5 );
+
+
+ bSizerTranslators->Add( 0, 5, 0, 0, 5 );
+
+ fgSizerTranslators = new wxFlexGridSizer( 50, 3, 2, 20 );
+ fgSizerTranslators->SetFlexibleDirection( wxBOTH );
+ fgSizerTranslators->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+
+
+ bSizerTranslators->Add( fgSizerTranslators, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
+
+
+ m_scrolledWindowTranslators->SetSizer( bSizerTranslators );
+ m_scrolledWindowTranslators->Layout();
+ bSizerTranslators->Fit( m_scrolledWindowTranslators );
+ bSizer53->Add( m_scrolledWindowTranslators, 0, wxALIGN_CENTER_HORIZONTAL|wxBOTTOM|wxEXPAND, 5 );
+
+ wxStaticBoxSizer* sbSizer29;
+ sbSizer29 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Feedback and suggestions are welcome") ), wxHORIZONTAL );
+
+ wxBoxSizer* bSizer170;
+ bSizer170 = new wxBoxSizer( wxHORIZONTAL );
+
+
+ bSizer170->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_hyperlink1 = new wxHyperlinkCtrl( this, wxID_ANY, _("Homepage"), wxT("http://sourceforge.net/projects/freefilesync/"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ m_hyperlink1->SetFont( wxFont( 10, 70, 90, 92, true, wxEmptyString ) );
+ m_hyperlink1->SetToolTip( _("http://sourceforge.net/projects/freefilesync/") );
+
+ bSizer170->Add( m_hyperlink1, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bitmap9 = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_bitmap9->SetToolTip( _("FreeFileSync at Sourceforge") );
+
+ bSizer170->Add( m_bitmap9, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
+
+
+ bSizer170->Add( 0, 0, 1, wxEXPAND, 5 );
+
+
+ sbSizer29->Add( bSizer170, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+ wxBoxSizer* bSizer1711;
+ bSizer1711 = new wxBoxSizer( wxHORIZONTAL );
+
+
+ bSizer1711->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_hyperlink2 = new wxHyperlinkCtrl( this, wxID_ANY, _("Email"), wxT("mailto:zenju@gmx.de"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ m_hyperlink2->SetFont( wxFont( 10, 70, 90, 92, true, wxEmptyString ) );
+ m_hyperlink2->SetToolTip( _("zenju@gmx.de") );
+
+ bSizer1711->Add( m_hyperlink2, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bitmap10 = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_bitmap10->SetToolTip( _("Email") );
+
+ bSizer1711->Add( m_bitmap10, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
+
+
+ bSizer1711->Add( 0, 0, 1, wxEXPAND, 5 );
+
+
+ sbSizer29->Add( bSizer1711, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer53->Add( sbSizer29, 0, wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxBOTTOM, 5 );
+
+ wxStaticBoxSizer* sbSizer14;
+ sbSizer14 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Published under the GNU General Public License") ), wxHORIZONTAL );
+
+
+ sbSizer14->Add( 0, 0, 1, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bitmap13 = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ sbSizer14->Add( m_bitmap13, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_hyperlink5 = new wxHyperlinkCtrl( this, wxID_ANY, _("http://www.gnu.org/licenses/gpl.html"), wxT("http://www.gnu.org/licenses/gpl.html"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ sbSizer14->Add( m_hyperlink5, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ sbSizer14->Add( 0, 0, 1, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer53->Add( sbSizer14, 0, wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
+
+
+ bSizer31->Add( bSizer53, 0, wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxRIGHT|wxLEFT, 25 );
+
+ m_buttonOkay = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxSize( 100,30 ), 0 );
+ m_buttonOkay->SetDefault();
+ m_buttonOkay->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
+
+ bSizer31->Add( m_buttonOkay, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
+
+
+ this->SetSizer( bSizer31 );
+ this->Layout();
+ bSizer31->Fit( this );
+
+ this->Centre( wxBOTH );
+
+ // Connect Events
+ this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( AboutDlgGenerated::OnClose ) );
+ m_buttonOkay->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( AboutDlgGenerated::OnOK ), NULL, this );
}
AboutDlgGenerated::~AboutDlgGenerated()
{
- // Disconnect Events
- this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( AboutDlgGenerated::OnClose ) );
- m_buttonOkay->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( AboutDlgGenerated::OnOK ), NULL, this );
-
+ // Disconnect Events
+ this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( AboutDlgGenerated::OnClose ) );
+ m_buttonOkay->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( AboutDlgGenerated::OnOK ), NULL, this );
+
}
MessageDlgGenerated::MessageDlgGenerated( 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( 300,160 ), wxDefaultSize );
- this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- wxBoxSizer* bSizer24;
- bSizer24 = new wxBoxSizer( wxVERTICAL );
-
-
- bSizer24->Add( 0, 10, 0, wxEXPAND, 5 );
-
- wxBoxSizer* bSizer26;
- bSizer26 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bitmapMsgType = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
- bSizer26->Add( m_bitmapMsgType, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
- m_textCtrlMessage = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 400,130 ), wxTE_MULTILINE|wxTE_READONLY|wxNO_BORDER );
- bSizer26->Add( m_textCtrlMessage, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
-
- bSizer24->Add( bSizer26, 1, wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
-
- m_staticline6 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer24->Add( m_staticline6, 0, wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxTOP, 5 );
-
- m_panel33 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panel33->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
-
- wxBoxSizer* bSizer177;
- bSizer177 = new wxBoxSizer( wxVERTICAL );
-
- m_checkBoxCustom = new wxCheckBox( m_panel33, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- bSizer177->Add( m_checkBoxCustom, 0, wxALIGN_CENTER_HORIZONTAL|wxTOP, 5 );
-
- wxBoxSizer* bSizer25;
- bSizer25 = new wxBoxSizer( wxHORIZONTAL );
-
- m_buttonCustom1 = new wxButton( m_panel33, wxID_ANY, _("dummy"), wxDefaultPosition, wxSize( -1,30 ), 0 );
- m_buttonCustom1->SetDefault();
- m_buttonCustom1->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
-
- bSizer25->Add( m_buttonCustom1, 0, wxTOP|wxBOTTOM|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_buttonCustom2 = new wxButton( m_panel33, wxID_ANY, _("dummy"), wxDefaultPosition, wxSize( -1,30 ), 0 );
- m_buttonCustom2->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
-
- bSizer25->Add( m_buttonCustom2, 0, wxTOP|wxBOTTOM|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_buttonCancel = new wxButton( m_panel33, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,30 ), 0 );
- m_buttonCancel->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
-
- bSizer25->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 );
-
-
- bSizer177->Add( bSizer25, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
-
-
- m_panel33->SetSizer( bSizer177 );
- m_panel33->Layout();
- bSizer177->Fit( m_panel33 );
- bSizer24->Add( m_panel33, 0, wxEXPAND, 5 );
-
-
- this->SetSizer( bSizer24 );
- this->Layout();
- bSizer24->Fit( this );
-
- this->Centre( wxBOTH );
-
- // Connect Events
- this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( MessageDlgGenerated::OnClose ) );
- m_buttonCustom1->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MessageDlgGenerated::OnButton1 ), NULL, this );
- m_buttonCustom2->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MessageDlgGenerated::OnButton2 ), NULL, this );
- m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MessageDlgGenerated::OnCancel ), NULL, this );
+ this->SetSizeHints( wxSize( 300,160 ), wxDefaultSize );
+ this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ wxBoxSizer* bSizer24;
+ bSizer24 = new wxBoxSizer( wxVERTICAL );
+
+
+ bSizer24->Add( 0, 10, 0, wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer26;
+ bSizer26 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bitmapMsgType = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizer26->Add( m_bitmapMsgType, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+ m_textCtrlMessage = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 400,130 ), wxTE_MULTILINE|wxTE_READONLY|wxNO_BORDER );
+ bSizer26->Add( m_textCtrlMessage, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+
+ bSizer24->Add( bSizer26, 1, wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
+
+ m_staticline6 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer24->Add( m_staticline6, 0, wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxTOP, 5 );
+
+ m_panel33 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panel33->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+
+ wxBoxSizer* bSizer177;
+ bSizer177 = new wxBoxSizer( wxVERTICAL );
+
+ m_checkBoxCustom = new wxCheckBox( m_panel33, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer177->Add( m_checkBoxCustom, 0, wxALIGN_CENTER_HORIZONTAL|wxTOP, 5 );
+
+ wxBoxSizer* bSizer25;
+ bSizer25 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_buttonCustom1 = new wxButton( m_panel33, wxID_ANY, _("dummy"), wxDefaultPosition, wxSize( -1,30 ), 0 );
+ m_buttonCustom1->SetDefault();
+ m_buttonCustom1->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
+
+ bSizer25->Add( m_buttonCustom1, 0, wxTOP|wxBOTTOM|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_buttonCustom2 = new wxButton( m_panel33, wxID_ANY, _("dummy"), wxDefaultPosition, wxSize( -1,30 ), 0 );
+ m_buttonCustom2->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
+
+ bSizer25->Add( m_buttonCustom2, 0, wxTOP|wxBOTTOM|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_buttonCancel = new wxButton( m_panel33, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,30 ), 0 );
+ m_buttonCancel->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
+
+ bSizer25->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 );
+
+
+ bSizer177->Add( bSizer25, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
+
+
+ m_panel33->SetSizer( bSizer177 );
+ m_panel33->Layout();
+ bSizer177->Fit( m_panel33 );
+ bSizer24->Add( m_panel33, 0, wxEXPAND, 5 );
+
+
+ this->SetSizer( bSizer24 );
+ this->Layout();
+ bSizer24->Fit( this );
+
+ this->Centre( wxBOTH );
+
+ // Connect Events
+ this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( MessageDlgGenerated::OnClose ) );
+ m_buttonCustom1->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MessageDlgGenerated::OnButton1 ), NULL, this );
+ m_buttonCustom2->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MessageDlgGenerated::OnButton2 ), NULL, this );
+ m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MessageDlgGenerated::OnCancel ), NULL, this );
}
MessageDlgGenerated::~MessageDlgGenerated()
{
- // Disconnect Events
- this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( MessageDlgGenerated::OnClose ) );
- m_buttonCustom1->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MessageDlgGenerated::OnButton1 ), NULL, this );
- m_buttonCustom2->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MessageDlgGenerated::OnButton2 ), NULL, this );
- m_buttonCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MessageDlgGenerated::OnCancel ), NULL, this );
-
+ // Disconnect Events
+ this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( MessageDlgGenerated::OnClose ) );
+ m_buttonCustom1->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MessageDlgGenerated::OnButton1 ), NULL, this );
+ m_buttonCustom2->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MessageDlgGenerated::OnButton2 ), NULL, this );
+ m_buttonCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MessageDlgGenerated::OnCancel ), NULL, this );
+
}
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( 300,180 ), wxDefaultSize );
- this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- wxBoxSizer* bSizer24;
- bSizer24 = new wxBoxSizer( wxVERTICAL );
-
- m_panelHeader = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panelHeader->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
-
- wxBoxSizer* bSizer181;
- bSizer181 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer41;
- bSizer41 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bitmap12 = new wxStaticBitmap( m_panelHeader, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
- bSizer41->Add( m_bitmap12, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
-
- m_staticTextHeader = new wxStaticText( m_panelHeader, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextHeader->Wrap( -1 );
- m_staticTextHeader->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
-
- bSizer41->Add( m_staticTextHeader, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer181->Add( bSizer41, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
-
-
- m_panelHeader->SetSizer( bSizer181 );
- m_panelHeader->Layout();
- bSizer181->Fit( m_panelHeader );
- bSizer24->Add( m_panelHeader, 0, wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
-
- m_staticline91 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer24->Add( m_staticline91, 0, wxEXPAND|wxBOTTOM, 5 );
-
- m_textCtrlFileList = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 550,200 ), wxTE_DONTWRAP|wxTE_MULTILINE|wxTE_READONLY|wxNO_BORDER );
- bSizer24->Add( m_textCtrlFileList, 1, wxEXPAND|wxLEFT, 5 );
-
- m_staticline9 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer24->Add( m_staticline9, 0, wxEXPAND|wxTOP, 5 );
-
- m_panel36 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panel36->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
-
- wxBoxSizer* bSizer180;
- bSizer180 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer179;
- bSizer179 = new wxBoxSizer( wxHORIZONTAL );
-
- wxBoxSizer* bSizer99;
- bSizer99 = new wxBoxSizer( wxVERTICAL );
-
- m_checkBoxUseRecycler = new wxCheckBox( m_panel36, wxID_ANY, _("Recycle Bin"), wxDefaultPosition, wxDefaultSize, 0 );
- bSizer99->Add( m_checkBoxUseRecycler, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxEXPAND, 5 );
-
- m_checkBoxDeleteBothSides = new wxCheckBox( m_panel36, wxID_ANY, _("Delete on both sides"), wxDefaultPosition, wxDefaultSize, 0 );
- m_checkBoxDeleteBothSides->SetToolTip( _("Delete on both sides even if the file is selected on one side only") );
-
- bSizer99->Add( m_checkBoxDeleteBothSides, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
-
- bSizer179->Add( bSizer99, 1, wxALIGN_CENTER_HORIZONTAL|wxALL|wxALIGN_CENTER_VERTICAL, 5 );
-
- wxBoxSizer* bSizer25;
- bSizer25 = new wxBoxSizer( wxHORIZONTAL );
-
- m_buttonOK = new wxButton( m_panel36, wxID_OK, _("OK"), wxDefaultPosition, wxSize( -1,30 ), 0 );
- m_buttonOK->SetDefault();
- m_buttonOK->SetFont( wxFont( 10, 70, 90, 92, false, wxEmptyString ) );
-
- bSizer25->Add( m_buttonOK, 0, wxTOP|wxBOTTOM|wxLEFT, 5 );
-
- m_buttonCancel = new wxButton( m_panel36, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,30 ), 0 );
- m_buttonCancel->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
-
- bSizer25->Add( m_buttonCancel, 0, wxALL, 5 );
-
-
- bSizer179->Add( bSizer25, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer180->Add( bSizer179, 0, wxEXPAND, 5 );
-
-
- m_panel36->SetSizer( bSizer180 );
- m_panel36->Layout();
- bSizer180->Fit( m_panel36 );
- bSizer24->Add( m_panel36, 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_checkBoxDeleteBothSides->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DeleteDlgGenerated::OnDelOnBothSides ), 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( 300,180 ), wxDefaultSize );
+ this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ wxBoxSizer* bSizer24;
+ bSizer24 = new wxBoxSizer( wxVERTICAL );
+
+ m_panelHeader = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panelHeader->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+
+ wxBoxSizer* bSizer181;
+ bSizer181 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer41;
+ bSizer41 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bitmap12 = new wxStaticBitmap( m_panelHeader, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizer41->Add( m_bitmap12, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+
+ m_staticTextHeader = new wxStaticText( m_panelHeader, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextHeader->Wrap( -1 );
+ m_staticTextHeader->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
+
+ bSizer41->Add( m_staticTextHeader, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer181->Add( bSizer41, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
+
+
+ m_panelHeader->SetSizer( bSizer181 );
+ m_panelHeader->Layout();
+ bSizer181->Fit( m_panelHeader );
+ bSizer24->Add( m_panelHeader, 0, wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
+
+ m_staticline91 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer24->Add( m_staticline91, 0, wxEXPAND|wxBOTTOM, 5 );
+
+ m_textCtrlFileList = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 550,200 ), wxTE_DONTWRAP|wxTE_MULTILINE|wxTE_READONLY|wxNO_BORDER );
+ bSizer24->Add( m_textCtrlFileList, 1, wxEXPAND|wxLEFT, 5 );
+
+ m_staticline9 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer24->Add( m_staticline9, 0, wxEXPAND|wxTOP, 5 );
+
+ m_panel36 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panel36->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+
+ wxBoxSizer* bSizer180;
+ bSizer180 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer179;
+ bSizer179 = new wxBoxSizer( wxHORIZONTAL );
+
+ wxBoxSizer* bSizer99;
+ bSizer99 = new wxBoxSizer( wxVERTICAL );
+
+ m_checkBoxUseRecycler = new wxCheckBox( m_panel36, wxID_ANY, _("Recycle Bin"), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer99->Add( m_checkBoxUseRecycler, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxEXPAND, 5 );
+
+ m_checkBoxDeleteBothSides = new wxCheckBox( m_panel36, wxID_ANY, _("Delete on both sides"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_checkBoxDeleteBothSides->SetToolTip( _("Delete on both sides even if the file is selected on one side only") );
+
+ bSizer99->Add( m_checkBoxDeleteBothSides, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+
+ bSizer179->Add( bSizer99, 1, wxALIGN_CENTER_HORIZONTAL|wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ wxBoxSizer* bSizer25;
+ bSizer25 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_buttonOK = new wxButton( m_panel36, wxID_OK, _("OK"), wxDefaultPosition, wxSize( -1,30 ), 0 );
+ m_buttonOK->SetDefault();
+ m_buttonOK->SetFont( wxFont( 10, 70, 90, 92, false, wxEmptyString ) );
+
+ bSizer25->Add( m_buttonOK, 0, wxTOP|wxBOTTOM|wxLEFT, 5 );
+
+ m_buttonCancel = new wxButton( m_panel36, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,30 ), 0 );
+ m_buttonCancel->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
+
+ bSizer25->Add( m_buttonCancel, 0, wxALL, 5 );
+
+
+ bSizer179->Add( bSizer25, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer180->Add( bSizer179, 0, wxEXPAND, 5 );
+
+
+ m_panel36->SetSizer( bSizer180 );
+ m_panel36->Layout();
+ bSizer180->Fit( m_panel36 );
+ bSizer24->Add( m_panel36, 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_checkBoxDeleteBothSides->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DeleteDlgGenerated::OnDelOnBothSides ), 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()
{
- // Disconnect Events
- this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DeleteDlgGenerated::OnClose ) );
- m_checkBoxUseRecycler->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DeleteDlgGenerated::OnUseRecycler ), NULL, this );
- m_checkBoxDeleteBothSides->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DeleteDlgGenerated::OnDelOnBothSides ), NULL, this );
- m_buttonOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DeleteDlgGenerated::OnOK ), NULL, this );
- m_buttonCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DeleteDlgGenerated::OnCancel ), NULL, this );
-
+ // Disconnect Events
+ this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DeleteDlgGenerated::OnClose ) );
+ m_checkBoxUseRecycler->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DeleteDlgGenerated::OnUseRecycler ), NULL, this );
+ m_checkBoxDeleteBothSides->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DeleteDlgGenerated::OnDelOnBothSides ), NULL, this );
+ m_buttonOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DeleteDlgGenerated::OnOK ), NULL, this );
+ m_buttonCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DeleteDlgGenerated::OnCancel ), NULL, this );
+
}
FilterDlgGenerated::FilterDlgGenerated( 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( 500,380 ), wxDefaultSize );
-
- wxBoxSizer* bSizer21;
- bSizer21 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer70;
- bSizer70 = new wxBoxSizer( wxHORIZONTAL );
-
- bSizer70->SetMinSize( wxSize( 550,-1 ) );
-
- bSizer70->Add( 0, 0, 1, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bitmap26 = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 40,40 ), 0 );
- bSizer70->Add( m_bitmap26, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
-
- m_panel8 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSIMPLE_BORDER|wxTAB_TRAVERSAL );
- m_panel8->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_3DLIGHT ) );
-
- wxBoxSizer* bSizer72;
- bSizer72 = new wxBoxSizer( wxVERTICAL );
-
- m_staticTexHeader = new wxStaticText( m_panel8, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTexHeader->Wrap( -1 );
- m_staticTexHeader->SetFont( wxFont( 14, 70, 90, 92, false, wxEmptyString ) );
- m_staticTexHeader->SetForegroundColour( wxColour( 0, 0, 0 ) );
-
- bSizer72->Add( m_staticTexHeader, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
-
-
- m_panel8->SetSizer( bSizer72 );
- m_panel8->Layout();
- bSizer72->Fit( m_panel8 );
- bSizer70->Add( m_panel8, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
-
- m_staticText44 = new wxStaticText( this, wxID_ANY, _("Only files that match all filter settings will be synchronized.\nNote: File names must be relative to base directories!"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_staticText44->Wrap( -1 );
- bSizer70->Add( m_staticText44, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bpButtonHelp = new wxBitmapButton( this, wxID_HELP, wxNullBitmap, wxDefaultPosition, wxSize( 40,40 ), wxBU_AUTODRAW );
- m_bpButtonHelp->SetToolTip( _("Help") );
-
- bSizer70->Add( m_bpButtonHelp, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
-
-
- bSizer70->Add( 0, 0, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
-
- bSizer21->Add( bSizer70, 0, wxALIGN_CENTER_HORIZONTAL|wxTOP|wxRIGHT|wxLEFT|wxEXPAND, 5 );
-
- wxBoxSizer* bSizer159;
- bSizer159 = new wxBoxSizer( wxHORIZONTAL );
-
- wxBoxSizer* bSizer166;
- bSizer166 = new wxBoxSizer( wxVERTICAL );
-
- wxStaticBoxSizer* sbSizer8;
- sbSizer8 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Include") ), wxHORIZONTAL );
-
- m_bitmapInclude = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 30,30 ), 0 );
- sbSizer8->Add( m_bitmapInclude, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxRIGHT, 5 );
-
- m_textCtrlInclude = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), wxTE_MULTILINE );
- sbSizer8->Add( m_textCtrlInclude, 1, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
-
-
- bSizer166->Add( sbSizer8, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
- wxStaticBoxSizer* sbSizer26;
- sbSizer26 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Exclude") ), wxHORIZONTAL );
-
- m_bitmapExclude = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 30,30 ), 0 );
- sbSizer26->Add( m_bitmapExclude, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
-
- m_textCtrlExclude = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), wxTE_MULTILINE );
- sbSizer26->Add( m_textCtrlExclude, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL, 5 );
-
-
- bSizer166->Add( sbSizer26, 1, wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
-
-
- bSizer159->Add( bSizer166, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
-
- bSizer159->Add( 5, 0, 0, 0, 5 );
-
- wxBoxSizer* bSizer160;
- bSizer160 = new wxBoxSizer( wxVERTICAL );
-
- wxStaticBoxSizer* sbSizer25;
- sbSizer25 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Time span") ), wxHORIZONTAL );
-
- wxBoxSizer* bSizer169;
- bSizer169 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bitmapFilterDate = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 34,34 ), 0 );
- bSizer169->Add( m_bitmapFilterDate, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
-
- wxBoxSizer* bSizer165;
- bSizer165 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer164;
- bSizer164 = new wxBoxSizer( wxVERTICAL );
-
- m_spinCtrlTimespan = new wxSpinCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 2000000000, 0 );
- bSizer164->Add( m_spinCtrlTimespan, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- wxArrayString m_choiceUnitTimespanChoices;
- m_choiceUnitTimespan = new wxChoice( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnitTimespanChoices, 0 );
- m_choiceUnitTimespan->SetSelection( 0 );
- bSizer164->Add( m_choiceUnitTimespan, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer165->Add( bSizer164, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer169->Add( bSizer165, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- sbSizer25->Add( bSizer169, 0, 0, 5 );
-
-
- bSizer160->Add( sbSizer25, 0, wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
-
- wxStaticBoxSizer* sbSizer81;
- sbSizer81 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("File size") ), wxHORIZONTAL );
-
- wxBoxSizer* bSizer170;
- bSizer170 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bitmapFilterSize = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 32,32 ), 0 );
- bSizer170->Add( m_bitmapFilterSize, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxRIGHT, 5 );
-
- wxBoxSizer* bSizer158;
- bSizer158 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer162;
- bSizer162 = new wxBoxSizer( wxVERTICAL );
-
- m_staticText101 = new wxStaticText( this, wxID_ANY, _("Minimum"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText101->Wrap( -1 );
- bSizer162->Add( m_staticText101, 0, wxBOTTOM, 2 );
-
- m_spinCtrlMinSize = new wxSpinCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 2000000000, 0 );
- bSizer162->Add( m_spinCtrlMinSize, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- wxArrayString m_choiceUnitMinSizeChoices;
- m_choiceUnitMinSize = new wxChoice( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnitMinSizeChoices, 0 );
- m_choiceUnitMinSize->SetSelection( 0 );
- bSizer162->Add( m_choiceUnitMinSize, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer158->Add( bSizer162, 0, wxBOTTOM, 5 );
-
- wxBoxSizer* bSizer163;
- bSizer163 = new wxBoxSizer( wxVERTICAL );
-
- m_staticText102 = new wxStaticText( this, wxID_ANY, _("Maximum"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText102->Wrap( -1 );
- bSizer163->Add( m_staticText102, 0, wxBOTTOM, 2 );
-
- m_spinCtrlMaxSize = new wxSpinCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 2000000000, 0 );
- bSizer163->Add( m_spinCtrlMaxSize, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- wxArrayString m_choiceUnitMaxSizeChoices;
- m_choiceUnitMaxSize = new wxChoice( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnitMaxSizeChoices, 0 );
- m_choiceUnitMaxSize->SetSelection( 0 );
- bSizer163->Add( m_choiceUnitMaxSize, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer158->Add( bSizer163, 0, 0, 5 );
-
-
- bSizer170->Add( bSizer158, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- sbSizer81->Add( bSizer170, 0, 0, 5 );
-
-
- bSizer160->Add( sbSizer81, 1, wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
-
-
- bSizer159->Add( bSizer160, 0, wxEXPAND, 5 );
-
-
- bSizer21->Add( bSizer159, 1, wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
-
- wxBoxSizer* bSizer22;
- bSizer22 = new wxBoxSizer( wxHORIZONTAL );
-
- m_button9 = new wxButton( this, wxID_DEFAULT, _("&Default"), wxDefaultPosition, wxSize( -1,30 ), 0 );
- m_button9->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
-
- bSizer22->Add( m_button9, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer22->Add( 0, 0, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_buttonOk = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxSize( -1,30 ), 0 );
- m_buttonOk->SetDefault();
- m_buttonOk->SetFont( wxFont( 10, 70, 90, 92, false, wxEmptyString ) );
-
- bSizer22->Add( m_buttonOk, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 );
-
- m_button17 = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,30 ), 0 );
- m_button17->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
-
- bSizer22->Add( m_button17, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
-
-
- bSizer21->Add( bSizer22, 0, wxALIGN_CENTER_HORIZONTAL|wxTOP|wxBOTTOM|wxEXPAND, 5 );
-
-
- this->SetSizer( bSizer21 );
- this->Layout();
- bSizer21->Fit( this );
-
- this->Centre( wxBOTH );
-
- // Connect Events
- this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( FilterDlgGenerated::OnClose ) );
- m_bpButtonHelp->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( FilterDlgGenerated::OnHelp ), NULL, this );
- m_textCtrlInclude->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( FilterDlgGenerated::OnUpdateNameFilter ), NULL, this );
- m_textCtrlExclude->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( FilterDlgGenerated::OnUpdateNameFilter ), NULL, this );
- m_choiceUnitTimespan->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( FilterDlgGenerated::OnUpdateChoice ), NULL, this );
- m_choiceUnitMinSize->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( FilterDlgGenerated::OnUpdateChoice ), NULL, this );
- m_choiceUnitMaxSize->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( FilterDlgGenerated::OnUpdateChoice ), NULL, this );
- m_button9->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( FilterDlgGenerated::OnDefault ), NULL, this );
- m_buttonOk->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( FilterDlgGenerated::OnApply ), NULL, this );
- m_button17->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( FilterDlgGenerated::OnCancel ), NULL, this );
+ this->SetSizeHints( wxSize( 500,380 ), wxDefaultSize );
+
+ wxBoxSizer* bSizer21;
+ bSizer21 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer70;
+ bSizer70 = new wxBoxSizer( wxHORIZONTAL );
+
+ bSizer70->SetMinSize( wxSize( 550,-1 ) );
+
+ bSizer70->Add( 0, 0, 1, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_panel8 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSIMPLE_BORDER|wxTAB_TRAVERSAL );
+ m_panel8->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_3DLIGHT ) );
+
+ wxBoxSizer* bSizer72;
+ bSizer72 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bitmap26 = new wxStaticBitmap( m_panel8, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,40 ), 0 );
+ bSizer72->Add( m_bitmap26, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
+
+ m_staticTexHeader = new wxStaticText( m_panel8, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTexHeader->Wrap( -1 );
+ m_staticTexHeader->SetFont( wxFont( 14, 70, 90, 92, false, wxEmptyString ) );
+ m_staticTexHeader->SetForegroundColour( wxColour( 0, 0, 0 ) );
+
+ bSizer72->Add( m_staticTexHeader, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+
+
+ m_panel8->SetSizer( bSizer72 );
+ m_panel8->Layout();
+ bSizer72->Fit( m_panel8 );
+ bSizer70->Add( m_panel8, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+
+ m_staticText44 = new wxStaticText( this, wxID_ANY, _("Only files that match all filter settings will be synchronized.\nNote: File names must be relative to base directories!"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_staticText44->Wrap( 480 );
+ bSizer70->Add( m_staticText44, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
+
+ m_bpButtonHelp = new wxBitmapButton( this, wxID_HELP, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ m_bpButtonHelp->SetToolTip( _("Help") );
+
+ bSizer70->Add( m_bpButtonHelp, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
+
+
+ bSizer70->Add( 0, 0, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+
+ bSizer21->Add( bSizer70, 0, wxALIGN_CENTER_HORIZONTAL|wxTOP|wxRIGHT|wxLEFT|wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer159;
+ bSizer159 = new wxBoxSizer( wxHORIZONTAL );
+
+ wxBoxSizer* bSizer166;
+ bSizer166 = new wxBoxSizer( wxVERTICAL );
+
+ wxStaticBoxSizer* sbSizer8;
+ sbSizer8 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Include") ), wxHORIZONTAL );
+
+ m_bitmapInclude = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 30,30 ), 0 );
+ sbSizer8->Add( m_bitmapInclude, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxRIGHT, 5 );
+
+ m_textCtrlInclude = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), wxTE_MULTILINE );
+ sbSizer8->Add( m_textCtrlInclude, 1, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
+
+
+ bSizer166->Add( sbSizer8, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+ wxStaticBoxSizer* sbSizer26;
+ sbSizer26 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Exclude") ), wxHORIZONTAL );
+
+ m_bitmapExclude = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 30,30 ), 0 );
+ sbSizer26->Add( m_bitmapExclude, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+
+ m_textCtrlExclude = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), wxTE_MULTILINE );
+ sbSizer26->Add( m_textCtrlExclude, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+
+ bSizer166->Add( sbSizer26, 1, wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
+
+
+ bSizer159->Add( bSizer166, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+
+ bSizer159->Add( 5, 0, 0, 0, 5 );
+
+ wxBoxSizer* bSizer160;
+ bSizer160 = new wxBoxSizer( wxVERTICAL );
+
+ wxStaticBoxSizer* sbSizer25;
+ sbSizer25 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Time span") ), wxHORIZONTAL );
+
+ wxBoxSizer* bSizer169;
+ bSizer169 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bitmapFilterDate = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 34,34 ), 0 );
+ bSizer169->Add( m_bitmapFilterDate, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+
+ wxBoxSizer* bSizer165;
+ bSizer165 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer164;
+ bSizer164 = new wxBoxSizer( wxVERTICAL );
+
+ m_spinCtrlTimespan = new wxSpinCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 2000000000, 0 );
+ bSizer164->Add( m_spinCtrlTimespan, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ wxArrayString m_choiceUnitTimespanChoices;
+ m_choiceUnitTimespan = new wxChoice( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnitTimespanChoices, 0 );
+ m_choiceUnitTimespan->SetSelection( 0 );
+ bSizer164->Add( m_choiceUnitTimespan, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer165->Add( bSizer164, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer169->Add( bSizer165, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ sbSizer25->Add( bSizer169, 0, 0, 5 );
+
+
+ bSizer160->Add( sbSizer25, 0, wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
+
+ wxStaticBoxSizer* sbSizer81;
+ sbSizer81 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("File size") ), wxHORIZONTAL );
+
+ wxBoxSizer* bSizer170;
+ bSizer170 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bitmapFilterSize = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 32,32 ), 0 );
+ bSizer170->Add( m_bitmapFilterSize, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxRIGHT, 5 );
+
+ wxBoxSizer* bSizer158;
+ bSizer158 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer162;
+ bSizer162 = new wxBoxSizer( wxVERTICAL );
+
+ m_staticText101 = new wxStaticText( this, wxID_ANY, _("Minimum"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText101->Wrap( -1 );
+ bSizer162->Add( m_staticText101, 0, wxBOTTOM, 2 );
+
+ m_spinCtrlMinSize = new wxSpinCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 2000000000, 0 );
+ bSizer162->Add( m_spinCtrlMinSize, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ wxArrayString m_choiceUnitMinSizeChoices;
+ m_choiceUnitMinSize = new wxChoice( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnitMinSizeChoices, 0 );
+ m_choiceUnitMinSize->SetSelection( 0 );
+ bSizer162->Add( m_choiceUnitMinSize, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer158->Add( bSizer162, 0, wxBOTTOM, 5 );
+
+ wxBoxSizer* bSizer163;
+ bSizer163 = new wxBoxSizer( wxVERTICAL );
+
+ m_staticText102 = new wxStaticText( this, wxID_ANY, _("Maximum"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText102->Wrap( -1 );
+ bSizer163->Add( m_staticText102, 0, wxBOTTOM, 2 );
+
+ m_spinCtrlMaxSize = new wxSpinCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 2000000000, 0 );
+ bSizer163->Add( m_spinCtrlMaxSize, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ wxArrayString m_choiceUnitMaxSizeChoices;
+ m_choiceUnitMaxSize = new wxChoice( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnitMaxSizeChoices, 0 );
+ m_choiceUnitMaxSize->SetSelection( 0 );
+ bSizer163->Add( m_choiceUnitMaxSize, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer158->Add( bSizer163, 0, 0, 5 );
+
+
+ bSizer170->Add( bSizer158, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ sbSizer81->Add( bSizer170, 0, 0, 5 );
+
+
+ bSizer160->Add( sbSizer81, 1, wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
+
+
+ bSizer159->Add( bSizer160, 0, wxEXPAND, 5 );
+
+
+ bSizer21->Add( bSizer159, 1, wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
+
+ wxBoxSizer* bSizer22;
+ bSizer22 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_button9 = new wxButton( this, wxID_DEFAULT, _("&Default"), wxDefaultPosition, wxSize( -1,30 ), 0 );
+ m_button9->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
+
+ bSizer22->Add( m_button9, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer22->Add( 0, 0, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_buttonOk = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxSize( -1,30 ), 0 );
+ m_buttonOk->SetDefault();
+ m_buttonOk->SetFont( wxFont( 10, 70, 90, 92, false, wxEmptyString ) );
+
+ bSizer22->Add( m_buttonOk, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 );
+
+ m_button17 = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,30 ), 0 );
+ m_button17->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
+
+ bSizer22->Add( m_button17, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+
+ bSizer21->Add( bSizer22, 0, wxALIGN_CENTER_HORIZONTAL|wxTOP|wxBOTTOM|wxEXPAND, 5 );
+
+
+ this->SetSizer( bSizer21 );
+ this->Layout();
+ bSizer21->Fit( this );
+
+ this->Centre( wxBOTH );
+
+ // Connect Events
+ this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( FilterDlgGenerated::OnClose ) );
+ m_bpButtonHelp->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( FilterDlgGenerated::OnHelp ), NULL, this );
+ m_textCtrlInclude->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( FilterDlgGenerated::OnUpdateNameFilter ), NULL, this );
+ m_textCtrlExclude->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( FilterDlgGenerated::OnUpdateNameFilter ), NULL, this );
+ m_choiceUnitTimespan->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( FilterDlgGenerated::OnUpdateChoice ), NULL, this );
+ m_choiceUnitMinSize->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( FilterDlgGenerated::OnUpdateChoice ), NULL, this );
+ m_choiceUnitMaxSize->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( FilterDlgGenerated::OnUpdateChoice ), NULL, this );
+ m_button9->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( FilterDlgGenerated::OnDefault ), NULL, this );
+ m_buttonOk->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( FilterDlgGenerated::OnApply ), NULL, this );
+ m_button17->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( FilterDlgGenerated::OnCancel ), NULL, this );
}
FilterDlgGenerated::~FilterDlgGenerated()
{
- // Disconnect Events
- this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( FilterDlgGenerated::OnClose ) );
- m_bpButtonHelp->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( FilterDlgGenerated::OnHelp ), NULL, this );
- m_textCtrlInclude->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( FilterDlgGenerated::OnUpdateNameFilter ), NULL, this );
- m_textCtrlExclude->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( FilterDlgGenerated::OnUpdateNameFilter ), NULL, this );
- m_choiceUnitTimespan->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( FilterDlgGenerated::OnUpdateChoice ), NULL, this );
- m_choiceUnitMinSize->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( FilterDlgGenerated::OnUpdateChoice ), NULL, this );
- m_choiceUnitMaxSize->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( FilterDlgGenerated::OnUpdateChoice ), NULL, this );
- m_button9->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( FilterDlgGenerated::OnDefault ), NULL, this );
- m_buttonOk->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( FilterDlgGenerated::OnApply ), NULL, this );
- m_button17->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( FilterDlgGenerated::OnCancel ), NULL, this );
-
+ // Disconnect Events
+ this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( FilterDlgGenerated::OnClose ) );
+ m_bpButtonHelp->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( FilterDlgGenerated::OnHelp ), NULL, this );
+ m_textCtrlInclude->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( FilterDlgGenerated::OnUpdateNameFilter ), NULL, this );
+ m_textCtrlExclude->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( FilterDlgGenerated::OnUpdateNameFilter ), NULL, this );
+ m_choiceUnitTimespan->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( FilterDlgGenerated::OnUpdateChoice ), NULL, this );
+ m_choiceUnitMinSize->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( FilterDlgGenerated::OnUpdateChoice ), NULL, this );
+ m_choiceUnitMaxSize->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( FilterDlgGenerated::OnUpdateChoice ), NULL, this );
+ m_button9->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( FilterDlgGenerated::OnDefault ), NULL, this );
+ m_buttonOk->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( FilterDlgGenerated::OnApply ), NULL, this );
+ m_button17->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( FilterDlgGenerated::OnCancel ), NULL, this );
+
}
GlobalSettingsDlgGenerated::GlobalSettingsDlgGenerated( 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( 300,360 ), wxDefaultSize );
-
- wxBoxSizer* bSizer95;
- bSizer95 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer86;
- bSizer86 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bitmapSettings = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 40,40 ), 0 );
- bSizer86->Add( m_bitmapSettings, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
-
- m_panel8 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSIMPLE_BORDER|wxTAB_TRAVERSAL );
- m_panel8->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_3DLIGHT ) );
-
- wxBoxSizer* bSizer72;
- bSizer72 = new wxBoxSizer( wxVERTICAL );
-
- m_staticText56 = new wxStaticText( m_panel8, wxID_ANY, _("Global settings"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText56->Wrap( -1 );
- m_staticText56->SetFont( wxFont( 14, 70, 90, 92, false, wxEmptyString ) );
- m_staticText56->SetForegroundColour( wxColour( 0, 0, 0 ) );
-
- bSizer72->Add( m_staticText56, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
-
-
- m_panel8->SetSizer( bSizer72 );
- m_panel8->Layout();
- bSizer72->Fit( m_panel8 );
- bSizer86->Add( m_panel8, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer95->Add( bSizer86, 0, wxALIGN_CENTER_HORIZONTAL|wxTOP|wxRIGHT|wxLEFT, 5 );
-
- wxStaticBoxSizer* sbSizer23;
- sbSizer23 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, wxEmptyString ), wxVERTICAL );
-
- m_checkBoxTransCopy = new wxCheckBox( this, wxID_ANY, _("Fail-safe file copy"), wxDefaultPosition, wxDefaultSize, 0 );
- sbSizer23->Add( m_checkBoxTransCopy, 0, wxEXPAND|wxALL, 5 );
-
- m_staticText82 = new wxStaticText( this, wxID_ANY, _("Write to a temporary file (*.ffs_tmp) first then rename it. This guarantees a consistent state even in case of fatal error."), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText82->Wrap( 420 );
- m_staticText82->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
-
- sbSizer23->Add( m_staticText82, 0, wxLEFT, 20 );
-
- m_checkBoxCopyLocked = new wxCheckBox( this, wxID_ANY, _("Copy locked files"), wxDefaultPosition, wxDefaultSize, 0 );
- sbSizer23->Add( m_checkBoxCopyLocked, 0, wxALL|wxEXPAND, 5 );
-
- m_staticTextCopyLocked = new wxStaticText( this, wxID_ANY, _("Copy shared or locked files using Volume Shadow Copy Service (Requires Administrator rights)"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextCopyLocked->Wrap( 420 );
- m_staticTextCopyLocked->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
-
- sbSizer23->Add( m_staticTextCopyLocked, 0, wxLEFT|wxEXPAND, 20 );
-
- m_checkBoxCopyPermissions = new wxCheckBox( this, wxID_ANY, _("Copy file access permissions"), wxDefaultPosition, wxDefaultSize, 0 );
- sbSizer23->Add( m_checkBoxCopyPermissions, 0, wxALL|wxEXPAND, 5 );
-
- m_staticText8211 = new wxStaticText( this, wxID_ANY, _("Transfer file and folder permissions (Requires Administrator rights)"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText8211->Wrap( 420 );
- m_staticText8211->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
-
- sbSizer23->Add( m_staticText8211, 0, wxLEFT|wxEXPAND, 20 );
-
-
- bSizer95->Add( sbSizer23, 0, wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxRIGHT|wxLEFT, 5 );
-
- m_buttonResetDialogs = new zen::BitmapButton( this, wxID_ANY, _("Restore hidden dialogs"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonResetDialogs->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
-
- bSizer95->Add( m_buttonResetDialogs, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxTOP|wxRIGHT|wxLEFT, 5 );
-
- wxStaticBoxSizer* sbSizer26;
- sbSizer26 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("External applications") ), wxHORIZONTAL );
-
-
- sbSizer26->Add( 5, 0, 0, 0, 5 );
-
- m_gridCustomCommand = new wxGrid( this, 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 );
- sbSizer26->Add( m_gridCustomCommand, 1, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
-
- wxBoxSizer* bSizer157;
- bSizer157 = new wxBoxSizer( wxVERTICAL );
-
- m_bpButtonAddRow = new wxBitmapButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 19,21 ), wxBU_AUTODRAW );
- bSizer157->Add( m_bpButtonAddRow, 0, 0, 5 );
-
- m_bpButtonRemoveRow = new wxBitmapButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 19,21 ), wxBU_AUTODRAW );
- bSizer157->Add( m_bpButtonRemoveRow, 0, 0, 5 );
-
-
- sbSizer26->Add( bSizer157, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
-
-
- sbSizer26->Add( 5, 0, 0, 0, 5 );
-
-
- bSizer95->Add( sbSizer26, 1, wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
-
- wxBoxSizer* bSizer97;
- bSizer97 = new wxBoxSizer( wxHORIZONTAL );
-
- m_button9 = new wxButton( this, wxID_DEFAULT, _("&Default"), wxDefaultPosition, wxSize( -1,30 ), 0 );
- m_button9->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
-
- bSizer97->Add( m_button9, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer97->Add( 0, 0, 1, 0, 5 );
-
- m_buttonOkay = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxSize( -1,30 ), 0 );
- m_buttonOkay->SetDefault();
- m_buttonOkay->SetFont( wxFont( 10, 70, 90, 92, false, wxEmptyString ) );
-
- bSizer97->Add( m_buttonOkay, 0, wxTOP|wxBOTTOM|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_button29 = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,30 ), 0 );
- m_button29->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
-
- bSizer97->Add( m_button29, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer95->Add( bSizer97, 0, wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
-
-
- this->SetSizer( bSizer95 );
- this->Layout();
- bSizer95->Fit( this );
-
- this->Centre( wxBOTH );
-
- // Connect Events
- this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( GlobalSettingsDlgGenerated::OnClose ) );
- m_buttonResetDialogs->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( GlobalSettingsDlgGenerated::OnResetDialogs ), NULL, this );
- m_bpButtonAddRow->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( GlobalSettingsDlgGenerated::OnAddRow ), NULL, this );
- m_bpButtonRemoveRow->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( GlobalSettingsDlgGenerated::OnRemoveRow ), NULL, this );
- m_button9->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( GlobalSettingsDlgGenerated::OnDefault ), NULL, this );
- m_buttonOkay->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( GlobalSettingsDlgGenerated::OnOkay ), NULL, this );
- m_button29->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( GlobalSettingsDlgGenerated::OnCancel ), NULL, this );
+ this->SetSizeHints( wxSize( 300,360 ), wxDefaultSize );
+
+ wxBoxSizer* bSizer95;
+ bSizer95 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer86;
+ bSizer86 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_panel8 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSIMPLE_BORDER|wxTAB_TRAVERSAL );
+ m_panel8->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_3DLIGHT ) );
+
+ wxBoxSizer* bSizer72;
+ bSizer72 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bitmapSettings = new wxStaticBitmap( m_panel8, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,40 ), 0 );
+ bSizer72->Add( m_bitmapSettings, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_staticText56 = new wxStaticText( m_panel8, wxID_ANY, _("Global settings"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText56->Wrap( -1 );
+ m_staticText56->SetFont( wxFont( 14, 70, 90, 92, false, wxEmptyString ) );
+ m_staticText56->SetForegroundColour( wxColour( 0, 0, 0 ) );
+
+ bSizer72->Add( m_staticText56, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+
+
+ m_panel8->SetSizer( bSizer72 );
+ m_panel8->Layout();
+ bSizer72->Fit( m_panel8 );
+ bSizer86->Add( m_panel8, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer95->Add( bSizer86, 0, wxALIGN_CENTER_HORIZONTAL|wxTOP|wxRIGHT|wxLEFT, 5 );
+
+ wxStaticBoxSizer* sbSizer23;
+ sbSizer23 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, wxEmptyString ), wxVERTICAL );
+
+ m_checkBoxTransCopy = new wxCheckBox( this, wxID_ANY, _("Fail-safe file copy"), wxDefaultPosition, wxDefaultSize, 0 );
+ sbSizer23->Add( m_checkBoxTransCopy, 0, wxEXPAND|wxALL, 5 );
+
+ m_staticText82 = new wxStaticText( this, wxID_ANY, _("Write to a temporary file (*.ffs_tmp) first then rename it. This guarantees a consistent state even in case of fatal error."), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText82->Wrap( 420 );
+ m_staticText82->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+
+ sbSizer23->Add( m_staticText82, 0, wxLEFT, 20 );
+
+ m_checkBoxCopyLocked = new wxCheckBox( this, wxID_ANY, _("Copy locked files"), wxDefaultPosition, wxDefaultSize, 0 );
+ sbSizer23->Add( m_checkBoxCopyLocked, 0, wxALL|wxEXPAND, 5 );
+
+ m_staticTextCopyLocked = new wxStaticText( this, wxID_ANY, _("Copy shared or locked files using Volume Shadow Copy Service (Requires Administrator rights)"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextCopyLocked->Wrap( 420 );
+ m_staticTextCopyLocked->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+
+ sbSizer23->Add( m_staticTextCopyLocked, 0, wxLEFT|wxEXPAND, 20 );
+
+ m_checkBoxCopyPermissions = new wxCheckBox( this, wxID_ANY, _("Copy file access permissions"), wxDefaultPosition, wxDefaultSize, 0 );
+ sbSizer23->Add( m_checkBoxCopyPermissions, 0, wxALL|wxEXPAND, 5 );
+
+ m_staticText8211 = new wxStaticText( this, wxID_ANY, _("Transfer file and folder permissions (Requires Administrator rights)"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText8211->Wrap( 420 );
+ m_staticText8211->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+
+ sbSizer23->Add( m_staticText8211, 0, wxLEFT|wxEXPAND, 20 );
+
+
+ bSizer95->Add( sbSizer23, 0, wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxRIGHT|wxLEFT, 5 );
+
+ m_buttonResetDialogs = new zen::BitmapButton( this, wxID_ANY, _("Restore hidden dialogs"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_buttonResetDialogs->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
+
+ bSizer95->Add( m_buttonResetDialogs, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxTOP|wxRIGHT|wxLEFT, 5 );
+
+ wxStaticBoxSizer* sbSizer26;
+ sbSizer26 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("External applications") ), wxHORIZONTAL );
+
+
+ sbSizer26->Add( 5, 0, 0, 0, 5 );
+
+ m_gridCustomCommand = new wxGrid( this, 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 );
+ sbSizer26->Add( m_gridCustomCommand, 1, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer157;
+ bSizer157 = new wxBoxSizer( wxVERTICAL );
+
+ m_bpButtonAddRow = new wxBitmapButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 23,23 ), wxBU_AUTODRAW );
+ bSizer157->Add( m_bpButtonAddRow, 0, 0, 5 );
+
+ m_bpButtonRemoveRow = new wxBitmapButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 23,23 ), wxBU_AUTODRAW );
+ bSizer157->Add( m_bpButtonRemoveRow, 0, 0, 5 );
+
+
+ sbSizer26->Add( bSizer157, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
+
+
+ sbSizer26->Add( 5, 0, 0, 0, 5 );
+
+
+ bSizer95->Add( sbSizer26, 1, wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
+
+ wxBoxSizer* bSizer97;
+ bSizer97 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_button9 = new wxButton( this, wxID_DEFAULT, _("&Default"), wxDefaultPosition, wxSize( -1,30 ), 0 );
+ m_button9->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
+
+ bSizer97->Add( m_button9, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer97->Add( 0, 0, 1, 0, 5 );
+
+ m_buttonOkay = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxSize( -1,30 ), 0 );
+ m_buttonOkay->SetDefault();
+ m_buttonOkay->SetFont( wxFont( 10, 70, 90, 92, false, wxEmptyString ) );
+
+ bSizer97->Add( m_buttonOkay, 0, wxTOP|wxBOTTOM|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_button29 = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,30 ), 0 );
+ m_button29->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
+
+ bSizer97->Add( m_button29, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer95->Add( bSizer97, 0, wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
+
+
+ this->SetSizer( bSizer95 );
+ this->Layout();
+ bSizer95->Fit( this );
+
+ this->Centre( wxBOTH );
+
+ // Connect Events
+ this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( GlobalSettingsDlgGenerated::OnClose ) );
+ m_buttonResetDialogs->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( GlobalSettingsDlgGenerated::OnResetDialogs ), NULL, this );
+ m_bpButtonAddRow->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( GlobalSettingsDlgGenerated::OnAddRow ), NULL, this );
+ m_bpButtonRemoveRow->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( GlobalSettingsDlgGenerated::OnRemoveRow ), NULL, this );
+ m_button9->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( GlobalSettingsDlgGenerated::OnDefault ), NULL, this );
+ m_buttonOkay->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( GlobalSettingsDlgGenerated::OnOkay ), NULL, this );
+ m_button29->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( GlobalSettingsDlgGenerated::OnCancel ), NULL, this );
}
GlobalSettingsDlgGenerated::~GlobalSettingsDlgGenerated()
{
- // Disconnect Events
- this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( GlobalSettingsDlgGenerated::OnClose ) );
- m_buttonResetDialogs->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( GlobalSettingsDlgGenerated::OnResetDialogs ), NULL, this );
- m_bpButtonAddRow->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( GlobalSettingsDlgGenerated::OnAddRow ), NULL, this );
- m_bpButtonRemoveRow->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( GlobalSettingsDlgGenerated::OnRemoveRow ), NULL, this );
- m_button9->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( GlobalSettingsDlgGenerated::OnDefault ), NULL, this );
- m_buttonOkay->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( GlobalSettingsDlgGenerated::OnOkay ), NULL, this );
- m_button29->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( GlobalSettingsDlgGenerated::OnCancel ), NULL, this );
-
+ // Disconnect Events
+ this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( GlobalSettingsDlgGenerated::OnClose ) );
+ m_buttonResetDialogs->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( GlobalSettingsDlgGenerated::OnResetDialogs ), NULL, this );
+ m_bpButtonAddRow->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( GlobalSettingsDlgGenerated::OnAddRow ), NULL, this );
+ m_bpButtonRemoveRow->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( GlobalSettingsDlgGenerated::OnRemoveRow ), NULL, this );
+ m_button9->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( GlobalSettingsDlgGenerated::OnDefault ), NULL, this );
+ m_buttonOkay->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( GlobalSettingsDlgGenerated::OnOkay ), NULL, this );
+ m_button29->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( GlobalSettingsDlgGenerated::OnCancel ), NULL, this );
+
}
SyncPreviewDlgGenerated::SyncPreviewDlgGenerated( 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* bSizer134;
- bSizer134 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer158;
- bSizer158 = new wxBoxSizer( wxHORIZONTAL );
-
- m_buttonStartSync = new zen::BitmapButton( this, wxID_OK, _("Start"), wxDefaultPosition, wxSize( -1,40 ), 0 );
- m_buttonStartSync->SetDefault();
- m_buttonStartSync->SetFont( wxFont( 14, 70, 90, 92, false, wxEmptyString ) );
- m_buttonStartSync->SetToolTip( _("Start synchronization") );
-
- bSizer158->Add( m_buttonStartSync, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
-
- m_staticline16 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizer158->Add( m_staticline16, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
-
- wxStaticBoxSizer* sbSizer28;
- sbSizer28 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Variant") ), wxVERTICAL );
-
- m_staticTextVariant = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextVariant->Wrap( -1 );
- m_staticTextVariant->SetFont( wxFont( 10, 70, 90, 92, false, wxEmptyString ) );
-
- sbSizer28->Add( m_staticTextVariant, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
-
- bSizer158->Add( sbSizer28, 1, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
-
- bSizer134->Add( bSizer158, 0, wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
-
- m_staticline14 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer134->Add( m_staticline14, 0, wxEXPAND, 5 );
-
- wxBoxSizer* bSizer141;
- bSizer141 = new wxBoxSizer( wxHORIZONTAL );
-
- wxStaticBoxSizer* sbSizer161;
- sbSizer161 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Statistics") ), wxVERTICAL );
-
- wxFlexGridSizer* fgSizer11;
- fgSizer11 = new wxFlexGridSizer( 2, 7, 2, 5 );
- fgSizer11->SetFlexibleDirection( wxBOTH );
- fgSizer11->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
-
- m_bitmapCreateLeft = new wxStaticBitmap( this, 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_bitmapUpdateLeft = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- m_bitmapUpdateLeft->SetToolTip( _("Number of files that will be overwritten") );
-
- fgSizer11->Add( m_bitmapUpdateLeft, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bitmapDeleteLeft = new wxStaticBitmap( this, 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_bitmapData = new wxStaticBitmap( this, 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_bitmapDeleteRight = new wxStaticBitmap( this, 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_bitmapUpdateRight = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- m_bitmapUpdateRight->SetToolTip( _("Number of files that will be overwritten") );
-
- fgSizer11->Add( m_bitmapUpdateRight, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bitmapCreateRight = new wxStaticBitmap( this, 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_staticTextCreateLeft = new wxStaticText( this, 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_staticTextUpdateLeft = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextUpdateLeft->Wrap( -1 );
- m_staticTextUpdateLeft->SetToolTip( _("Number of files that will be overwritten") );
-
- fgSizer11->Add( m_staticTextUpdateLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_staticTextDeleteLeft = new wxStaticText( this, 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_staticTextData = new wxStaticText( this, 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_staticTextDeleteRight = new wxStaticText( this, 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 );
-
- m_staticTextUpdateRight = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextUpdateRight->Wrap( -1 );
- m_staticTextUpdateRight->SetToolTip( _("Number of files that will be overwritten") );
-
- fgSizer11->Add( m_staticTextUpdateRight, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_staticTextCreateRight = new wxStaticText( this, 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 );
-
-
- sbSizer161->Add( fgSizer11, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
-
-
- bSizer141->Add( sbSizer161, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
-
-
- bSizer134->Add( bSizer141, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_staticline12 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer134->Add( m_staticline12, 0, wxEXPAND|wxTOP, 5 );
-
- wxBoxSizer* bSizer142;
- bSizer142 = new wxBoxSizer( wxHORIZONTAL );
-
- m_checkBoxDontShowAgain = new wxCheckBox( this, wxID_ANY, _("Don't show this dialog again"), wxDefaultPosition, wxDefaultSize, 0 );
- bSizer142->Add( m_checkBoxDontShowAgain, 0, wxALIGN_CENTER_HORIZONTAL|wxALL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer142->Add( 10, 0, 1, 0, 5 );
-
- m_button16 = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,30 ), 0 );
- m_button16->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
-
- bSizer142->Add( m_button16, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
-
-
- bSizer134->Add( bSizer142, 0, wxEXPAND, 5 );
-
-
- this->SetSizer( bSizer134 );
- this->Layout();
- bSizer134->Fit( this );
-
- this->Centre( wxBOTH );
-
- // Connect Events
- this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( SyncPreviewDlgGenerated::OnClose ) );
- m_buttonStartSync->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncPreviewDlgGenerated::OnStartSync ), NULL, this );
- m_button16->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncPreviewDlgGenerated::OnCancel ), NULL, this );
+ this->SetSizeHints( wxDefaultSize, wxDefaultSize );
+
+ wxBoxSizer* bSizer134;
+ bSizer134 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer158;
+ bSizer158 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_buttonStartSync = new zen::BitmapButton( this, wxID_OK, _("Start"), wxDefaultPosition, wxSize( -1,48 ), 0 );
+ m_buttonStartSync->SetDefault();
+ m_buttonStartSync->SetFont( wxFont( 14, 70, 90, 92, false, wxEmptyString ) );
+ m_buttonStartSync->SetToolTip( _("Start synchronization") );
+
+ bSizer158->Add( m_buttonStartSync, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+ m_staticline16 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizer158->Add( m_staticline16, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
+
+ wxStaticBoxSizer* sbSizer28;
+ sbSizer28 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Variant") ), wxVERTICAL );
+
+ m_staticTextVariant = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextVariant->Wrap( -1 );
+ m_staticTextVariant->SetFont( wxFont( 10, 70, 90, 92, false, wxEmptyString ) );
+
+ sbSizer28->Add( m_staticTextVariant, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+
+ bSizer158->Add( sbSizer28, 1, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+
+ bSizer134->Add( bSizer158, 0, wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
+
+ m_staticline14 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer134->Add( m_staticline14, 0, wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer141;
+ bSizer141 = new wxBoxSizer( wxHORIZONTAL );
+
+ wxStaticBoxSizer* sbSizer161;
+ sbSizer161 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Statistics") ), wxVERTICAL );
+
+ wxFlexGridSizer* fgSizer11;
+ fgSizer11 = new wxFlexGridSizer( 2, 7, 2, 5 );
+ fgSizer11->SetFlexibleDirection( wxBOTH );
+ fgSizer11->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+
+ m_bitmapCreateLeft = new wxStaticBitmap( this, 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_bitmapUpdateLeft = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ m_bitmapUpdateLeft->SetToolTip( _("Number of files that will be overwritten") );
+
+ fgSizer11->Add( m_bitmapUpdateLeft, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bitmapDeleteLeft = new wxStaticBitmap( this, 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_bitmapData = new wxStaticBitmap( this, 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_bitmapDeleteRight = new wxStaticBitmap( this, 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_bitmapUpdateRight = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ m_bitmapUpdateRight->SetToolTip( _("Number of files that will be overwritten") );
+
+ fgSizer11->Add( m_bitmapUpdateRight, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bitmapCreateRight = new wxStaticBitmap( this, 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_staticTextCreateLeft = new wxStaticText( this, 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_staticTextUpdateLeft = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextUpdateLeft->Wrap( -1 );
+ m_staticTextUpdateLeft->SetToolTip( _("Number of files that will be overwritten") );
+
+ fgSizer11->Add( m_staticTextUpdateLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_staticTextDeleteLeft = new wxStaticText( this, 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_staticTextData = new wxStaticText( this, 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_staticTextDeleteRight = new wxStaticText( this, 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 );
+
+ m_staticTextUpdateRight = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextUpdateRight->Wrap( -1 );
+ m_staticTextUpdateRight->SetToolTip( _("Number of files that will be overwritten") );
+
+ fgSizer11->Add( m_staticTextUpdateRight, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_staticTextCreateRight = new wxStaticText( this, 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 );
+
+
+ sbSizer161->Add( fgSizer11, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
+
+
+ bSizer141->Add( sbSizer161, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
+
+
+ bSizer134->Add( bSizer141, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_staticline12 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer134->Add( m_staticline12, 0, wxEXPAND|wxTOP, 5 );
+
+ wxBoxSizer* bSizer142;
+ bSizer142 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_checkBoxDontShowAgain = new wxCheckBox( this, wxID_ANY, _("Don't show this dialog again"), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer142->Add( m_checkBoxDontShowAgain, 0, wxALIGN_CENTER_HORIZONTAL|wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer142->Add( 10, 0, 1, 0, 5 );
+
+ m_button16 = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,30 ), 0 );
+ m_button16->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
+
+ bSizer142->Add( m_button16, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
+
+
+ bSizer134->Add( bSizer142, 0, wxEXPAND, 5 );
+
+
+ this->SetSizer( bSizer134 );
+ this->Layout();
+ bSizer134->Fit( this );
+
+ this->Centre( wxBOTH );
+
+ // Connect Events
+ this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( SyncPreviewDlgGenerated::OnClose ) );
+ m_buttonStartSync->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncPreviewDlgGenerated::OnStartSync ), NULL, this );
+ m_button16->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncPreviewDlgGenerated::OnCancel ), NULL, this );
}
SyncPreviewDlgGenerated::~SyncPreviewDlgGenerated()
{
- // Disconnect Events
- this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( SyncPreviewDlgGenerated::OnClose ) );
- m_buttonStartSync->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncPreviewDlgGenerated::OnStartSync ), NULL, this );
- m_button16->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncPreviewDlgGenerated::OnCancel ), NULL, this );
-
+ // Disconnect Events
+ this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( SyncPreviewDlgGenerated::OnClose ) );
+ m_buttonStartSync->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncPreviewDlgGenerated::OnStartSync ), NULL, this );
+ m_button16->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncPreviewDlgGenerated::OnCancel ), NULL, this );
+
}
PopupFrameGenerated1::PopupFrameGenerated1( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxFrame( 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 );
}
PopupFrameGenerated1::~PopupFrameGenerated1()
@@ -3682,141 +3677,141 @@ PopupFrameGenerated1::~PopupFrameGenerated1()
SearchDialogGenerated::SearchDialogGenerated( 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* bSizer161;
- bSizer161 = new wxBoxSizer( wxHORIZONTAL );
-
- wxBoxSizer* bSizer166;
- bSizer166 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer162;
- bSizer162 = new wxBoxSizer( wxHORIZONTAL );
-
- m_staticText101 = new wxStaticText( this, wxID_ANY, _("Find what:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText101->Wrap( -1 );
- bSizer162->Add( m_staticText101, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_textCtrlSearchTxt = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 220,-1 ), 0 );
- bSizer162->Add( m_textCtrlSearchTxt, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer166->Add( bSizer162, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
-
- bSizer166->Add( 0, 5, 0, 0, 5 );
-
- m_checkBoxMatchCase = new wxCheckBox( this, wxID_ANY, _("Match case"), wxDefaultPosition, wxDefaultSize, 0 );
- bSizer166->Add( m_checkBoxMatchCase, 0, wxALL, 5 );
-
-
- bSizer161->Add( bSizer166, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
- wxBoxSizer* bSizer97;
- bSizer97 = new wxBoxSizer( wxVERTICAL );
-
- m_buttonFindNext = new wxButton( this, wxID_OK, _("&Find next"), wxDefaultPosition, wxSize( -1,30 ), 0 );
- m_buttonFindNext->SetDefault();
- m_buttonFindNext->SetFont( wxFont( 10, 70, 90, 92, false, wxEmptyString ) );
-
- bSizer97->Add( m_buttonFindNext, 0, wxEXPAND|wxTOP|wxRIGHT, 5 );
-
- m_button29 = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,30 ), 0 );
- m_button29->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
-
- bSizer97->Add( m_button29, 0, wxEXPAND|wxTOP|wxBOTTOM|wxRIGHT, 5 );
-
-
- bSizer161->Add( bSizer97, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- this->SetSizer( bSizer161 );
- this->Layout();
- bSizer161->Fit( this );
-
- this->Centre( wxBOTH );
-
- // Connect Events
- this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( SearchDialogGenerated::OnClose ) );
- m_textCtrlSearchTxt->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( SearchDialogGenerated::OnText ), NULL, this );
- m_buttonFindNext->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SearchDialogGenerated::OnFindNext ), NULL, this );
- m_button29->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SearchDialogGenerated::OnCancel ), NULL, this );
+ this->SetSizeHints( wxDefaultSize, wxDefaultSize );
+
+ wxBoxSizer* bSizer161;
+ bSizer161 = new wxBoxSizer( wxHORIZONTAL );
+
+ wxBoxSizer* bSizer166;
+ bSizer166 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer162;
+ bSizer162 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_staticText101 = new wxStaticText( this, wxID_ANY, _("Find what:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText101->Wrap( -1 );
+ bSizer162->Add( m_staticText101, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_textCtrlSearchTxt = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 220,-1 ), 0 );
+ bSizer162->Add( m_textCtrlSearchTxt, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer166->Add( bSizer162, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+
+ bSizer166->Add( 0, 5, 0, 0, 5 );
+
+ m_checkBoxMatchCase = new wxCheckBox( this, wxID_ANY, _("Match case"), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer166->Add( m_checkBoxMatchCase, 0, wxALL, 5 );
+
+
+ bSizer161->Add( bSizer166, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer97;
+ bSizer97 = new wxBoxSizer( wxVERTICAL );
+
+ m_buttonFindNext = new wxButton( this, wxID_OK, _("&Find next"), wxDefaultPosition, wxSize( -1,30 ), 0 );
+ m_buttonFindNext->SetDefault();
+ m_buttonFindNext->SetFont( wxFont( 10, 70, 90, 92, false, wxEmptyString ) );
+
+ bSizer97->Add( m_buttonFindNext, 0, wxEXPAND|wxTOP|wxRIGHT, 5 );
+
+ m_button29 = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,30 ), 0 );
+ m_button29->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
+
+ bSizer97->Add( m_button29, 0, wxEXPAND|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+
+
+ bSizer161->Add( bSizer97, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ this->SetSizer( bSizer161 );
+ this->Layout();
+ bSizer161->Fit( this );
+
+ this->Centre( wxBOTH );
+
+ // Connect Events
+ this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( SearchDialogGenerated::OnClose ) );
+ m_textCtrlSearchTxt->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( SearchDialogGenerated::OnText ), NULL, this );
+ m_buttonFindNext->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SearchDialogGenerated::OnFindNext ), NULL, this );
+ m_button29->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SearchDialogGenerated::OnCancel ), NULL, this );
}
SearchDialogGenerated::~SearchDialogGenerated()
{
- // Disconnect Events
- this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( SearchDialogGenerated::OnClose ) );
- m_textCtrlSearchTxt->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( SearchDialogGenerated::OnText ), NULL, this );
- m_buttonFindNext->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SearchDialogGenerated::OnFindNext ), NULL, this );
- m_button29->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SearchDialogGenerated::OnCancel ), NULL, this );
-
+ // Disconnect Events
+ this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( SearchDialogGenerated::OnClose ) );
+ m_textCtrlSearchTxt->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( SearchDialogGenerated::OnText ), NULL, this );
+ m_buttonFindNext->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SearchDialogGenerated::OnFindNext ), NULL, this );
+ m_button29->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SearchDialogGenerated::OnCancel ), NULL, this );
+
}
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 );
-
- wxBoxSizer* bSizer96;
- bSizer96 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer98;
- bSizer98 = new wxBoxSizer( wxHORIZONTAL );
-
- m_calendarFrom = new wxCalendarCtrl( this, wxID_ANY, wxDefaultDateTime, wxDefaultPosition, wxDefaultSize, wxCAL_SHOW_HOLIDAYS );
- bSizer98->Add( m_calendarFrom, 0, wxALL, 5 );
-
- m_calendarTo = new wxCalendarCtrl( this, wxID_ANY, wxDefaultDateTime, wxDefaultPosition, wxDefaultSize, wxCAL_SHOW_HOLIDAYS );
- bSizer98->Add( m_calendarTo, 0, wxALL, 5 );
-
-
- bSizer96->Add( bSizer98, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- wxBoxSizer* bSizer97;
- bSizer97 = new wxBoxSizer( wxHORIZONTAL );
-
-
- bSizer97->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_buttonOkay = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxSize( -1,30 ), 0 );
- m_buttonOkay->SetDefault();
- m_buttonOkay->SetFont( wxFont( 10, 70, 90, 92, false, wxEmptyString ) );
-
- bSizer97->Add( m_buttonOkay, 0, wxTOP|wxBOTTOM|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_button29 = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,30 ), 0 );
- m_button29->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
-
- bSizer97->Add( m_button29, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
-
-
- bSizer97->Add( 0, 0, 1, wxEXPAND, 5 );
-
-
- bSizer96->Add( bSizer97, 0, wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxBOTTOM|wxRIGHT|wxLEFT, 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_button29->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SelectTimespanDlgGenerated::OnCancel ), NULL, this );
+ this->SetSizeHints( wxDefaultSize, wxDefaultSize );
+
+ wxBoxSizer* bSizer96;
+ bSizer96 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer98;
+ bSizer98 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_calendarFrom = new wxCalendarCtrl( this, wxID_ANY, wxDefaultDateTime, wxDefaultPosition, wxDefaultSize, wxCAL_SHOW_HOLIDAYS );
+ bSizer98->Add( m_calendarFrom, 0, wxALL, 5 );
+
+ m_calendarTo = new wxCalendarCtrl( this, wxID_ANY, wxDefaultDateTime, wxDefaultPosition, wxDefaultSize, wxCAL_SHOW_HOLIDAYS );
+ bSizer98->Add( m_calendarTo, 0, wxALL, 5 );
+
+
+ bSizer96->Add( bSizer98, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ wxBoxSizer* bSizer97;
+ bSizer97 = new wxBoxSizer( wxHORIZONTAL );
+
+
+ bSizer97->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_buttonOkay = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxSize( -1,30 ), 0 );
+ m_buttonOkay->SetDefault();
+ m_buttonOkay->SetFont( wxFont( 10, 70, 90, 92, false, wxEmptyString ) );
+
+ bSizer97->Add( m_buttonOkay, 0, wxTOP|wxBOTTOM|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_button29 = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,30 ), 0 );
+ m_button29->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
+
+ bSizer97->Add( m_button29, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+
+ bSizer97->Add( 0, 0, 1, wxEXPAND, 5 );
+
+
+ bSizer96->Add( bSizer97, 0, wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxBOTTOM|wxRIGHT|wxLEFT, 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_button29->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SelectTimespanDlgGenerated::OnCancel ), NULL, this );
}
SelectTimespanDlgGenerated::~SelectTimespanDlgGenerated()
{
- // Disconnect Events
- this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( SelectTimespanDlgGenerated::OnClose ) );
- m_calendarFrom->Disconnect( wxEVT_CALENDAR_SEL_CHANGED, wxCalendarEventHandler( SelectTimespanDlgGenerated::OnChangeSelectionFrom ), NULL, this );
- m_calendarTo->Disconnect( wxEVT_CALENDAR_SEL_CHANGED, wxCalendarEventHandler( SelectTimespanDlgGenerated::OnChangeSelectionTo ), NULL, this );
- m_buttonOkay->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SelectTimespanDlgGenerated::OnOkay ), NULL, this );
- m_button29->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SelectTimespanDlgGenerated::OnCancel ), NULL, this );
-
+ // Disconnect Events
+ this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( SelectTimespanDlgGenerated::OnClose ) );
+ m_calendarFrom->Disconnect( wxEVT_CALENDAR_SEL_CHANGED, wxCalendarEventHandler( SelectTimespanDlgGenerated::OnChangeSelectionFrom ), NULL, this );
+ m_calendarTo->Disconnect( wxEVT_CALENDAR_SEL_CHANGED, wxCalendarEventHandler( SelectTimespanDlgGenerated::OnChangeSelectionTo ), NULL, this );
+ m_buttonOkay->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SelectTimespanDlgGenerated::OnOkay ), NULL, this );
+ m_button29->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SelectTimespanDlgGenerated::OnCancel ), NULL, this );
+
}
diff --git a/ui/gui_generated.h b/ui/gui_generated.h
index 42f33064..fc5291e3 100644
--- a/ui/gui_generated.h
+++ b/ui/gui_generated.h
@@ -64,879 +64,879 @@
///////////////////////////////////////////////////////////////////////////////
/// Class MainDialogGenerated
///////////////////////////////////////////////////////////////////////////////
-class MainDialogGenerated : public wxFrame
+class MainDialogGenerated : public wxFrame
{
-private:
-
-protected:
- wxMenuBar* m_menubar1;
- wxMenu* m_menuFile;
- wxMenuItem* m_menuItem10;
- wxMenuItem* m_menuItem11;
- wxMenuItem* m_menuItemNew;
- wxMenuItem* m_menuItemLoad;
- wxMenuItem* m_menuItemSave;
- wxMenuItem* m_menuItemSaveAs;
- wxMenu* m_menuAdvanced;
- wxMenu* m_menuLanguages;
- wxMenuItem* m_menuItemGlobSett;
- wxMenuItem* m_menuItem7;
- wxMenu* m_menuHelp;
- wxMenuItem* m_menuItemManual;
- wxMenuItem* m_menuItemCheckVer;
- wxMenuItem* m_menuItemAbout;
- wxBoxSizer* bSizerPanelHolder;
- wxPanel* m_panelTopButtons;
- wxBoxSizer* bSizerTopButtons;
- wxStaticText* m_staticTextCmpVariant;
- zen::BitmapButton* m_buttonCompare;
- wxButton* m_buttonAbort;
- wxBitmapButton* m_bpButtonCmpConfig;
- wxStaticText* m_staticTextSyncVariant;
- wxBitmapButton* m_bpButtonSyncConfig;
- zen::BitmapButton* m_buttonStartSync;
- wxPanel* m_panelDirectoryPairs;
- wxStaticText* m_staticTextFinalPathLeft;
- wxBitmapButton* m_bpButtonAddPair;
- wxButton* m_buttonSelectDirLeft;
- wxPanel* m_panelTopMiddle;
- wxBitmapButton* m_bpButtonSwapSides;
- wxStaticText* m_staticTextFinalPathRight;
- wxButton* m_buttonSelectDirRight;
- 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* bSizerStatusLeftDirectories;
- wxStaticBitmap* m_bitmapSmallDirectoryLeft;
- wxStaticText* m_staticTextStatusLeftDirs;
- wxBoxSizer* bSizerStatusLeftFiles;
- wxStaticBitmap* m_bitmapSmallFileLeft;
- wxStaticText* m_staticTextStatusLeftFiles;
- wxStaticText* m_staticTextStatusLeftBytes;
- wxStaticLine* m_staticline9;
- wxStaticText* m_staticTextStatusMiddle;
- wxStaticLine* m_staticline10;
- wxBoxSizer* bSizerStatusRightDirectories;
- wxStaticBitmap* m_bitmapSmallDirectoryRight;
- wxStaticText* m_staticTextStatusRightDirs;
- wxBoxSizer* bSizerStatusRightFiles;
- wxStaticBitmap* m_bitmapSmallFileRight;
- wxStaticText* m_staticTextStatusRightFiles;
- wxStaticText* m_staticTextStatusRightBytes;
- wxPanel* m_panelConfig;
- wxBoxSizer* bSizerConfig;
- wxBitmapButton* m_bpButtonLoad;
- wxBitmapButton* m_bpButtonSave;
- wxListBox* m_listBoxHistory;
- wxPanel* m_panelFilter;
- wxBitmapButton* m_bpButtonFilter;
- wxCheckBox* m_checkBoxShowExcluded;
- wxPanel* m_panelStatistics;
- wxBoxSizer* bSizer1801;
- wxStaticBitmap* m_bitmapCreateLeft;
- wxStaticText* m_staticTextCreateLeft;
- wxStaticBitmap* m_bitmapUpdateLeft;
- wxStaticText* m_staticTextUpdateLeft;
- wxStaticBitmap* m_bitmapDeleteLeft;
- wxStaticText* m_staticTextDeleteLeft;
- wxStaticBitmap* m_bitmapData;
- wxStaticText* m_staticTextData;
- wxStaticBitmap* m_bitmapDeleteRight;
- wxStaticText* m_staticTextDeleteRight;
- wxStaticBitmap* m_bitmapUpdateRight;
- wxStaticText* m_staticTextUpdateRight;
- wxStaticBitmap* m_bitmapCreateRight;
- wxStaticText* m_staticTextCreateRight;
- wxPanel* m_panelViewFilter;
- wxBoxSizer* bSizerViewFilter;
- ToggleButton* m_bpButtonSyncCreateLeft;
- ToggleButton* m_bpButtonSyncDirOverwLeft;
- ToggleButton* m_bpButtonSyncDeleteLeft;
- ToggleButton* m_bpButtonLeftOnly;
- ToggleButton* m_bpButtonLeftNewer;
- ToggleButton* m_bpButtonEqual;
- ToggleButton* m_bpButtonDifferent;
- ToggleButton* m_bpButtonSyncDirNone;
- ToggleButton* m_bpButtonRightNewer;
- ToggleButton* m_bpButtonRightOnly;
- ToggleButton* m_bpButtonSyncDeleteRight;
- ToggleButton* m_bpButtonSyncDirOverwRight;
- ToggleButton* m_bpButtonSyncCreateRight;
- ToggleButton* m_bpButtonConflict;
-
- // Virtual event handlers, overide them in your derived class
- virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
- virtual void OnCompare( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnStartSync( wxCommandEvent& 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 OnMenuQuit( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnMenuGlobalSettings( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnMenuBatchJob( 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 OnMenuAbout( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnCmpSettings( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnSyncSettings( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnAddFolderPair( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnRemoveTopFolderPair( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnSwapSides( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnCfgHistoryKeyEvent( wxKeyEvent& event ) { event.Skip(); }
- virtual void OnLoadFromHistory( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnConfigureFilter( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnShowExcluded( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnSyncCreateLeft( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnSyncDirLeft( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnSyncDeleteLeft( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnLeftOnlyFiles( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnLeftNewerFiles( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnEqualFiles( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnDifferentFiles( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnSyncDirNone( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnRightNewerFiles( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnRightOnlyFiles( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnSyncDeleteRight( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnSyncDirRight( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnSyncCreateRight( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnConflictFiles( wxCommandEvent& event ) { event.Skip(); }
-
-
-public:
- wxPanel* m_panelTopLeft;
- wxBitmapButton* m_bpButtonRemovePair;
- FolderHistoryBox* m_directoryLeft;
- wxBitmapButton* m_bpButtonAltCompCfg;
- wxBitmapButton* m_bpButtonLocalFilter;
- wxBitmapButton* m_bpButtonAltSyncCfg;
- wxPanel* m_panelTopRight;
- FolderHistoryBox* m_directoryRight;
- wxBoxSizer* bSizerStatistics;
- wxBoxSizer* bSizerData;
-
- MainDialogGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 702,522 ), 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_menuItem10;
+ wxMenuItem* m_menuItem11;
+ wxMenu* m_menuAdvanced;
+ wxMenu* m_menuLanguages;
+ wxMenuItem* m_menuItemGlobSett;
+ wxMenuItem* m_menuItem7;
+ wxMenu* m_menuHelp;
+ wxMenuItem* m_menuItemManual;
+ wxMenuItem* m_menuItemCheckVer;
+ wxMenuItem* m_menuItemAbout;
+ wxBoxSizer* bSizerPanelHolder;
+ wxPanel* m_panelTopButtons;
+ wxBoxSizer* bSizerTopButtons;
+ wxStaticText* m_staticTextCmpVariant;
+ zen::BitmapButton* m_buttonCompare;
+ wxButton* m_buttonAbort;
+ wxBitmapButton* m_bpButtonCmpConfig;
+ wxStaticText* m_staticTextSyncVariant;
+ wxBitmapButton* m_bpButtonSyncConfig;
+ zen::BitmapButton* m_buttonStartSync;
+ wxPanel* m_panelDirectoryPairs;
+ wxStaticText* m_staticTextFinalPathLeft;
+ wxBitmapButton* m_bpButtonAddPair;
+ wxButton* m_buttonSelectDirLeft;
+ wxPanel* m_panelTopMiddle;
+ wxBitmapButton* m_bpButtonSwapSides;
+ wxStaticText* m_staticTextFinalPathRight;
+ wxButton* m_buttonSelectDirRight;
+ 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* bSizerStatusLeftDirectories;
+ wxStaticBitmap* m_bitmapSmallDirectoryLeft;
+ wxStaticText* m_staticTextStatusLeftDirs;
+ wxBoxSizer* bSizerStatusLeftFiles;
+ wxStaticBitmap* m_bitmapSmallFileLeft;
+ wxStaticText* m_staticTextStatusLeftFiles;
+ wxStaticText* m_staticTextStatusLeftBytes;
+ wxStaticLine* m_staticline9;
+ wxStaticText* m_staticTextStatusMiddle;
+ wxStaticLine* m_staticline10;
+ wxBoxSizer* bSizerStatusRightDirectories;
+ wxStaticBitmap* m_bitmapSmallDirectoryRight;
+ wxStaticText* m_staticTextStatusRightDirs;
+ wxBoxSizer* bSizerStatusRightFiles;
+ wxStaticBitmap* m_bitmapSmallFileRight;
+ wxStaticText* m_staticTextStatusRightFiles;
+ wxStaticText* m_staticTextStatusRightBytes;
+ wxPanel* m_panelConfig;
+ wxBoxSizer* bSizerConfig;
+ wxBitmapButton* m_bpButtonLoad;
+ wxBitmapButton* m_bpButtonSave;
+ wxListBox* m_listBoxHistory;
+ wxPanel* m_panelFilter;
+ wxBitmapButton* m_bpButtonFilter;
+ wxCheckBox* m_checkBoxShowExcluded;
+ wxPanel* m_panelStatistics;
+ wxBoxSizer* bSizer1801;
+ wxStaticBitmap* m_bitmapCreateLeft;
+ wxStaticText* m_staticTextCreateLeft;
+ wxStaticBitmap* m_bitmapUpdateLeft;
+ wxStaticText* m_staticTextUpdateLeft;
+ wxStaticBitmap* m_bitmapDeleteLeft;
+ wxStaticText* m_staticTextDeleteLeft;
+ wxStaticBitmap* m_bitmapData;
+ wxStaticText* m_staticTextData;
+ wxStaticBitmap* m_bitmapDeleteRight;
+ wxStaticText* m_staticTextDeleteRight;
+ wxStaticBitmap* m_bitmapUpdateRight;
+ wxStaticText* m_staticTextUpdateRight;
+ wxStaticBitmap* m_bitmapCreateRight;
+ wxStaticText* m_staticTextCreateRight;
+ wxPanel* m_panelViewFilter;
+ wxBoxSizer* bSizerViewFilter;
+ ToggleButton* m_bpButtonSyncCreateLeft;
+ ToggleButton* m_bpButtonSyncDirOverwLeft;
+ ToggleButton* m_bpButtonSyncDeleteLeft;
+ ToggleButton* m_bpButtonLeftOnly;
+ ToggleButton* m_bpButtonLeftNewer;
+ ToggleButton* m_bpButtonEqual;
+ ToggleButton* m_bpButtonDifferent;
+ ToggleButton* m_bpButtonSyncDirNone;
+ ToggleButton* m_bpButtonRightNewer;
+ ToggleButton* m_bpButtonRightOnly;
+ ToggleButton* m_bpButtonSyncDeleteRight;
+ ToggleButton* m_bpButtonSyncDirOverwRight;
+ ToggleButton* m_bpButtonSyncCreateRight;
+ ToggleButton* m_bpButtonConflict;
+
+ // 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 OnCompare( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnStartSync( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnMenuQuit( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnMenuGlobalSettings( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnMenuBatchJob( 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 OnMenuAbout( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnCmpSettings( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnSyncSettings( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnAddFolderPair( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnRemoveTopFolderPair( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnSwapSides( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnCfgHistoryKeyEvent( wxKeyEvent& event ) { event.Skip(); }
+ virtual void OnLoadFromHistory( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnConfigureFilter( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnShowExcluded( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnSyncCreateLeft( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnSyncDirLeft( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnSyncDeleteLeft( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnLeftOnlyFiles( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnLeftNewerFiles( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnEqualFiles( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnDifferentFiles( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnSyncDirNone( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnRightNewerFiles( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnRightOnlyFiles( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnSyncDeleteRight( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnSyncDirRight( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnSyncCreateRight( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnConflictFiles( wxCommandEvent& event ) { event.Skip(); }
+
+
+ public:
+ wxPanel* m_panelTopLeft;
+ wxBitmapButton* m_bpButtonRemovePair;
+ FolderHistoryBox* m_directoryLeft;
+ wxBitmapButton* m_bpButtonAltCompCfg;
+ wxBitmapButton* m_bpButtonLocalFilter;
+ wxBitmapButton* m_bpButtonAltSyncCfg;
+ wxPanel* m_panelTopRight;
+ FolderHistoryBox* m_directoryRight;
+ wxBoxSizer* bSizerStatistics;
+ wxBoxSizer* bSizerData;
+
+ MainDialogGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 702,522 ), long style = wxDEFAULT_FRAME_STYLE|wxTAB_TRAVERSAL );
+
+ ~MainDialogGenerated();
+
};
///////////////////////////////////////////////////////////////////////////////
/// Class FolderPairGenerated
///////////////////////////////////////////////////////////////////////////////
-class FolderPairGenerated : public wxPanel
+class FolderPairGenerated : public wxPanel
{
-private:
-
-protected:
- wxButton* m_buttonSelectDirLeft;
- wxButton* m_buttonSelectDirRight;
-
-public:
- wxPanel* m_panelLeft;
- wxBitmapButton* m_bpButtonRemovePair;
- FolderHistoryBox* m_directoryLeft;
- wxPanel* m_panel20;
- wxBitmapButton* m_bpButtonAltCompCfg;
- wxBitmapButton* m_bpButtonLocalFilter;
- wxBitmapButton* m_bpButtonAltSyncCfg;
- wxPanel* m_panelRight;
- FolderHistoryBox* m_directoryRight;
-
- FolderPairGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxTAB_TRAVERSAL );
- ~FolderPairGenerated();
-
+ private:
+
+ protected:
+ wxButton* m_buttonSelectDirLeft;
+ wxButton* m_buttonSelectDirRight;
+
+ public:
+ wxPanel* m_panelLeft;
+ wxBitmapButton* m_bpButtonRemovePair;
+ FolderHistoryBox* m_directoryLeft;
+ wxPanel* m_panel20;
+ wxBitmapButton* m_bpButtonAltCompCfg;
+ wxBitmapButton* m_bpButtonLocalFilter;
+ wxBitmapButton* m_bpButtonAltSyncCfg;
+ wxPanel* m_panelRight;
+ FolderHistoryBox* m_directoryRight;
+
+ FolderPairGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxTAB_TRAVERSAL );
+ ~FolderPairGenerated();
+
};
///////////////////////////////////////////////////////////////////////////////
/// Class CompareStatusGenerated
///////////////////////////////////////////////////////////////////////////////
-class CompareStatusGenerated : public wxPanel
+class CompareStatusGenerated : public wxPanel
{
-private:
-
-protected:
- wxTextCtrl* m_textCtrlStatus;
- wxGauge* m_gauge2;
- wxBoxSizer* bSizer42;
- wxBoxSizer* bSizerFilesFound;
- wxStaticText* m_staticText321;
- wxStaticText* m_staticTextScanned;
- wxBoxSizer* bSizerFilesRemaining;
- wxStaticText* m_staticText46;
- wxStaticText* m_staticTextFilesRemaining;
- wxStaticText* m_staticTextDataRemaining;
- wxBoxSizer* sSizerSpeed;
- wxStaticText* m_staticText104;
- wxStaticText* m_staticTextSpeed;
- wxBoxSizer* sSizerTimeRemaining;
- wxStaticText* m_staticTextTimeRemFixed;
- wxStaticText* m_staticTextRemTime;
- wxBoxSizer* sSizerTimeElapsed;
- wxStaticText* m_staticTextTimeElapsed;
-
-public:
-
- CompareStatusGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxRAISED_BORDER|wxTAB_TRAVERSAL );
- ~CompareStatusGenerated();
-
+ private:
+
+ protected:
+ wxTextCtrl* m_textCtrlStatus;
+ wxGauge* m_gauge2;
+ wxBoxSizer* bSizer42;
+ wxBoxSizer* bSizerFilesFound;
+ wxStaticText* m_staticText321;
+ wxStaticText* m_staticTextScanned;
+ wxBoxSizer* bSizerFilesRemaining;
+ wxStaticText* m_staticText46;
+ wxStaticText* m_staticTextFilesRemaining;
+ wxStaticText* m_staticTextDataRemaining;
+ wxBoxSizer* sSizerSpeed;
+ wxStaticText* m_staticText104;
+ wxStaticText* m_staticTextSpeed;
+ wxBoxSizer* sSizerTimeRemaining;
+ wxStaticText* m_staticTextTimeRemFixed;
+ wxStaticText* m_staticTextRemTime;
+ wxBoxSizer* sSizerTimeElapsed;
+ wxStaticText* m_staticTextTimeElapsed;
+
+ public:
+
+ CompareStatusGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxRAISED_BORDER|wxTAB_TRAVERSAL );
+ ~CompareStatusGenerated();
+
};
///////////////////////////////////////////////////////////////////////////////
/// Class BatchDlgGenerated
///////////////////////////////////////////////////////////////////////////////
-class BatchDlgGenerated : public wxDialog
+class BatchDlgGenerated : public wxDialog
{
-private:
-
-protected:
- wxStaticBitmap* m_bitmap27;
- wxPanel* m_panel8;
- wxStaticText* m_staticText56;
- wxStaticText* m_staticText44;
- wxBitmapButton* m_bpButtonHelp;
- wxNotebook* m_notebook1;
- wxPanel* m_panelOverview;
- wxBitmapButton* m_bpButtonCmpConfig;
- wxStaticText* m_staticTextCmpVariant;
- wxBitmapButton* m_bpButtonFilter;
- wxStaticText* m_staticTextSyncVariant;
- wxBitmapButton* m_bpButtonSyncConfig;
- wxBoxSizer* sbSizerMainPair;
- wxPanel* m_panelMainPair;
- wxStaticText* m_staticText532;
- wxStaticText* m_staticText5411;
- wxButton* m_buttonSelectDirLeft;
- wxButton* m_buttonSelectDirRight;
- wxBoxSizer* bSizerAddFolderPairs;
- wxPanel* m_panelBatchSettings;
- wxStaticBoxSizer* sbSizerErrorHandling;
- wxToggleButton* m_toggleBtnErrorIgnore;
- wxToggleButton* m_toggleBtnErrorPopup;
- wxToggleButton* m_toggleBtnErrorExit;
- wxStaticBoxSizer* sbSizerExecFinished;
- ExecFinishedBox* m_comboBoxExecFinished;
- wxCheckBox* m_checkBoxShowProgress;
- wxCheckBox* m_checkBoxGenerateLogfile;
- wxPanel* m_panelLogfile;
- wxButton* m_buttonSelectLogfileDir;
- wxCheckBox* m_checkBoxLogfilesLimit;
- wxSpinCtrl* m_spinCtrlLogfileLimit;
- wxButton* m_buttonLoad;
- wxButton* m_buttonSave;
- wxButton* m_button6;
-
- // Virtual event handlers, overide them in your derived class
- virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
- virtual void OnHelp( 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 OnAddFolderPair( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnRemoveTopFolderPair( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnErrorIgnore( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnErrorPopup( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnErrorExit( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnToggleGenerateLogfile( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnToggleLogfilesLimit( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnLoadBatchJob( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnSaveBatchJob( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); }
-
-
-public:
- wxScrolledWindow* m_scrolledWindow6;
- wxBitmapButton* m_bpButtonAddPair;
- wxBitmapButton* m_bpButtonRemovePair;
- wxPanel* m_panelLeft;
- FolderHistoryBox* m_directoryLeft;
- wxPanel* m_panelRight;
- FolderHistoryBox* m_directoryRight;
- wxBitmapButton* m_bpButtonAltCompCfg;
- wxBitmapButton* m_bpButtonLocalFilter;
- wxBitmapButton* m_bpButtonAltSyncCfg;
- FolderHistoryBox* m_comboBoxLogfileDir;
-
- BatchDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Create a batch job"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxMAXIMIZE_BOX|wxMINIMIZE_BOX|wxRESIZE_BORDER );
- ~BatchDlgGenerated();
-
+ private:
+
+ protected:
+ wxPanel* m_panel8;
+ wxStaticBitmap* m_bitmap27;
+ wxStaticText* m_staticText56;
+ wxStaticText* m_staticText44;
+ wxBitmapButton* m_bpButtonHelp;
+ wxNotebook* m_notebook1;
+ wxPanel* m_panelOverview;
+ wxBitmapButton* m_bpButtonCmpConfig;
+ wxStaticText* m_staticTextCmpVariant;
+ wxBitmapButton* m_bpButtonFilter;
+ wxStaticText* m_staticTextSyncVariant;
+ wxBitmapButton* m_bpButtonSyncConfig;
+ wxBoxSizer* sbSizerMainPair;
+ wxPanel* m_panelMainPair;
+ wxStaticText* m_staticText532;
+ wxStaticText* m_staticText5411;
+ wxButton* m_buttonSelectDirLeft;
+ wxButton* m_buttonSelectDirRight;
+ wxBoxSizer* bSizerAddFolderPairs;
+ wxPanel* m_panelBatchSettings;
+ wxStaticBoxSizer* sbSizerErrorHandling;
+ wxToggleButton* m_toggleBtnErrorIgnore;
+ wxToggleButton* m_toggleBtnErrorPopup;
+ wxToggleButton* m_toggleBtnErrorExit;
+ wxStaticBoxSizer* sbSizerExecFinished;
+ ExecFinishedBox* m_comboBoxExecFinished;
+ wxCheckBox* m_checkBoxShowProgress;
+ wxCheckBox* m_checkBoxGenerateLogfile;
+ wxPanel* m_panelLogfile;
+ wxButton* m_buttonSelectLogfileDir;
+ wxCheckBox* m_checkBoxLogfilesLimit;
+ wxSpinCtrl* m_spinCtrlLogfileLimit;
+ wxButton* m_buttonLoad;
+ wxButton* m_buttonSave;
+ wxButton* m_button6;
+
+ // Virtual event handlers, overide them in your derived class
+ virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
+ virtual void OnHelp( 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 OnAddFolderPair( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnRemoveTopFolderPair( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnErrorIgnore( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnErrorPopup( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnErrorExit( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnToggleGenerateLogfile( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnToggleLogfilesLimit( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnLoadBatchJob( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnSaveBatchJob( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); }
+
+
+ public:
+ wxScrolledWindow* m_scrolledWindow6;
+ wxBitmapButton* m_bpButtonAddPair;
+ wxBitmapButton* m_bpButtonRemovePair;
+ wxPanel* m_panelLeft;
+ FolderHistoryBox* m_directoryLeft;
+ wxPanel* m_panelRight;
+ FolderHistoryBox* m_directoryRight;
+ wxBitmapButton* m_bpButtonAltCompCfg;
+ wxBitmapButton* m_bpButtonLocalFilter;
+ wxBitmapButton* m_bpButtonAltSyncCfg;
+ FolderHistoryBox* m_comboBoxLogfileDir;
+
+ BatchDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Create a batch job"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxMAXIMIZE_BOX|wxMINIMIZE_BOX|wxRESIZE_BORDER );
+ ~BatchDlgGenerated();
+
};
///////////////////////////////////////////////////////////////////////////////
/// Class BatchFolderPairGenerated
///////////////////////////////////////////////////////////////////////////////
-class BatchFolderPairGenerated : public wxPanel
+class BatchFolderPairGenerated : public wxPanel
{
-private:
-
-protected:
- wxPanel* m_panel32;
- wxStaticText* m_staticText53;
- wxStaticText* m_staticText541;
- wxPanel* m_panelLeft;
- wxButton* m_buttonSelectDirLeft;
- wxPanel* m_panelRight;
- wxButton* m_buttonSelectDirRight;
-
-public:
- wxBitmapButton* m_bpButtonRemovePair;
- FolderHistoryBox* m_directoryLeft;
- FolderHistoryBox* m_directoryRight;
- wxBitmapButton* m_bpButtonAltCompCfg;
- wxBitmapButton* m_bpButtonLocalFilter;
- wxBitmapButton* m_bpButtonAltSyncCfg;
-
- BatchFolderPairGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxTAB_TRAVERSAL );
- ~BatchFolderPairGenerated();
-
+ private:
+
+ protected:
+ wxPanel* m_panel32;
+ wxStaticText* m_staticText53;
+ wxStaticText* m_staticText541;
+ wxPanel* m_panelLeft;
+ wxButton* m_buttonSelectDirLeft;
+ wxPanel* m_panelRight;
+ wxButton* m_buttonSelectDirRight;
+
+ public:
+ wxBitmapButton* m_bpButtonRemovePair;
+ FolderHistoryBox* m_directoryLeft;
+ FolderHistoryBox* m_directoryRight;
+ wxBitmapButton* m_bpButtonAltCompCfg;
+ wxBitmapButton* m_bpButtonLocalFilter;
+ wxBitmapButton* m_bpButtonAltSyncCfg;
+
+ BatchFolderPairGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxTAB_TRAVERSAL );
+ ~BatchFolderPairGenerated();
+
};
///////////////////////////////////////////////////////////////////////////////
/// Class CmpCfgDlgGenerated
///////////////////////////////////////////////////////////////////////////////
-class CmpCfgDlgGenerated : public wxDialog
+class CmpCfgDlgGenerated : public wxDialog
{
-private:
-
-protected:
- wxStaticBitmap* m_bitmapByTime;
- wxToggleButton* m_toggleBtnTimeSize;
- wxStaticBitmap* m_bitmapByContent;
- wxToggleButton* m_toggleBtnContent;
- wxChoice* m_choiceHandleSymlinks;
- wxBitmapButton* m_bpButtonHelp;
- wxButton* m_button10;
- wxButton* m_button6;
-
- // Virtual event handlers, overide them in your derived class
- virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
- virtual void OnTimeSizeDouble( wxMouseEvent& event ) { event.Skip(); }
- virtual void OnTimeSize( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnContentDouble( wxMouseEvent& event ) { event.Skip(); }
- virtual void OnContent( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnChangeErrorHandling( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnShowHelp( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnOkay( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); }
-
-
-public:
-
- CmpCfgDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Comparison settings"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE );
- ~CmpCfgDlgGenerated();
-
+ private:
+
+ protected:
+ wxStaticBitmap* m_bitmapByTime;
+ wxToggleButton* m_toggleBtnTimeSize;
+ wxStaticBitmap* m_bitmapByContent;
+ wxToggleButton* m_toggleBtnContent;
+ wxChoice* m_choiceHandleSymlinks;
+ wxBitmapButton* m_bpButtonHelp;
+ wxButton* m_button10;
+ wxButton* m_button6;
+
+ // Virtual event handlers, overide them in your derived class
+ virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
+ virtual void OnTimeSizeDouble( wxMouseEvent& event ) { event.Skip(); }
+ virtual void OnTimeSize( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnContentDouble( wxMouseEvent& event ) { event.Skip(); }
+ virtual void OnContent( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnChangeErrorHandling( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnShowHelp( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnOkay( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); }
+
+
+ public:
+
+ CmpCfgDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Comparison settings"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE );
+ ~CmpCfgDlgGenerated();
+
};
///////////////////////////////////////////////////////////////////////////////
/// Class SyncCfgDlgGenerated
///////////////////////////////////////////////////////////////////////////////
-class SyncCfgDlgGenerated : public wxDialog
+class SyncCfgDlgGenerated : public wxDialog
{
-private:
-
-protected:
- wxToggleButton* m_toggleBtnAutomatic;
- wxStaticText* m_staticTextAutomatic;
- wxToggleButton* m_toggleBtnMirror;
- wxStaticText* m_staticTextMirror;
- wxToggleButton* m_toggleBtnUpdate;
- wxStaticText* m_staticTextUpdate;
- wxToggleButton* m_toggleBtnCustom;
- wxStaticText* m_staticTextCustom;
- wxToggleButton* m_toggleBtnPermanent;
- wxToggleButton* m_toggleBtnRecycler;
- wxToggleButton* m_toggleBtnVersioning;
- wxCheckBox* m_checkBoxVersionsLimit;
- wxSpinCtrl* m_spinCtrlVersionsLimit;
- wxPanel* m_panelVersioning;
- FolderHistoryBox* m_versioningFolder;
- wxButton* m_buttonSelectDirVersioning;
- wxBoxSizer* bSizer201;
- wxStaticBoxSizer* sbSizerErrorHandling;
- wxToggleButton* m_toggleBtnErrorIgnore;
- wxToggleButton* m_toggleBtnErrorPopup;
- wxStaticBoxSizer* sbSizerExecFinished;
- ExecFinishedBox* m_comboBoxExecFinished;
- wxStaticBitmap* m_bitmapDatabase;
- wxBoxSizer* sbSizerSyncDirections;
- wxStaticText* m_staticText21;
- wxStaticText* m_staticText31;
- wxBoxSizer* bSizerLeftOnly;
- wxStaticBitmap* m_bitmapLeftOnly;
- wxBitmapButton* m_bpButtonLeftOnly;
- wxBoxSizer* bSizerRightOnly;
- wxStaticBitmap* m_bitmapRightOnly;
- wxBitmapButton* m_bpButtonRightOnly;
- wxBoxSizer* bSizerLeftNewer;
- wxStaticBitmap* m_bitmapLeftNewer;
- wxBitmapButton* m_bpButtonLeftNewer;
- wxBoxSizer* bSizerRightNewer;
- wxStaticBitmap* m_bitmapRightNewer;
- wxBitmapButton* m_bpButtonRightNewer;
- wxBoxSizer* bSizerDifferent;
- wxStaticBitmap* m_bitmapDifferent;
- wxBitmapButton* m_bpButtonDifferent;
- wxBoxSizer* bSizerConflict;
- wxStaticBitmap* m_bitmapConflict;
- wxBitmapButton* m_bpButtonConflict;
- wxButton* m_buttonOK;
- wxButton* m_button16;
-
- // Virtual event handlers, overide them in your derived class
- virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
- virtual void OnSyncAutomaticDouble( wxMouseEvent& event ) { event.Skip(); }
- virtual void OnSyncAutomatic( 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 OnDeletionPermanent( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnDeletionRecycler( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnDeletionVersioning( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnToggleVersionsLimit( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnErrorIgnore( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnErrorPopup( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnExLeftSideOnly( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnExRightSideOnly( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnLeftNewer( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnRightNewer( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnDifferent( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnConflict( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnApply( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); }
-
-
-public:
-
- SyncCfgDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Synchronization settings"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE );
- ~SyncCfgDlgGenerated();
-
+ private:
+
+ protected:
+ wxToggleButton* m_toggleBtnAutomatic;
+ wxStaticText* m_staticTextAutomatic;
+ wxToggleButton* m_toggleBtnMirror;
+ wxStaticText* m_staticTextMirror;
+ wxToggleButton* m_toggleBtnUpdate;
+ wxStaticText* m_staticTextUpdate;
+ wxToggleButton* m_toggleBtnCustom;
+ wxStaticText* m_staticTextCustom;
+ wxToggleButton* m_toggleBtnPermanent;
+ wxToggleButton* m_toggleBtnRecycler;
+ wxToggleButton* m_toggleBtnVersioning;
+ wxCheckBox* m_checkBoxVersionsLimit;
+ wxSpinCtrl* m_spinCtrlVersionsLimit;
+ wxPanel* m_panelVersioning;
+ FolderHistoryBox* m_versioningFolder;
+ wxButton* m_buttonSelectDirVersioning;
+ wxBoxSizer* bSizer201;
+ wxStaticBoxSizer* sbSizerErrorHandling;
+ wxToggleButton* m_toggleBtnErrorIgnore;
+ wxToggleButton* m_toggleBtnErrorPopup;
+ wxStaticBoxSizer* sbSizerExecFinished;
+ ExecFinishedBox* m_comboBoxExecFinished;
+ wxStaticBitmap* m_bitmapDatabase;
+ wxBoxSizer* sbSizerSyncDirections;
+ wxStaticText* m_staticText21;
+ wxStaticText* m_staticText31;
+ wxBoxSizer* bSizerLeftOnly;
+ wxStaticBitmap* m_bitmapLeftOnly;
+ wxBitmapButton* m_bpButtonLeftOnly;
+ wxBoxSizer* bSizerRightOnly;
+ wxStaticBitmap* m_bitmapRightOnly;
+ wxBitmapButton* m_bpButtonRightOnly;
+ wxBoxSizer* bSizerLeftNewer;
+ wxStaticBitmap* m_bitmapLeftNewer;
+ wxBitmapButton* m_bpButtonLeftNewer;
+ wxBoxSizer* bSizerRightNewer;
+ wxStaticBitmap* m_bitmapRightNewer;
+ wxBitmapButton* m_bpButtonRightNewer;
+ wxBoxSizer* bSizerDifferent;
+ wxStaticBitmap* m_bitmapDifferent;
+ wxBitmapButton* m_bpButtonDifferent;
+ wxBoxSizer* bSizerConflict;
+ wxStaticBitmap* m_bitmapConflict;
+ wxBitmapButton* m_bpButtonConflict;
+ wxButton* m_buttonOK;
+ wxButton* m_button16;
+
+ // Virtual event handlers, overide them in your derived class
+ virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
+ virtual void OnSyncAutomaticDouble( wxMouseEvent& event ) { event.Skip(); }
+ virtual void OnSyncAutomatic( 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 OnDeletionPermanent( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnDeletionRecycler( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnDeletionVersioning( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnToggleVersionsLimit( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnErrorIgnore( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnErrorPopup( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnExLeftSideOnly( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnExRightSideOnly( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnLeftNewer( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnRightNewer( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnDifferent( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnConflict( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnApply( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); }
+
+
+ public:
+
+ SyncCfgDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Synchronization settings"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE );
+ ~SyncCfgDlgGenerated();
+
};
///////////////////////////////////////////////////////////////////////////////
/// Class SyncStatusDlgGenerated
///////////////////////////////////////////////////////////////////////////////
-class SyncStatusDlgGenerated : public wxFrame
+class SyncStatusDlgGenerated : public wxFrame
{
-private:
-
-protected:
- wxBoxSizer* bSizerTop;
- wxPanel* m_panelHeader;
- wxStaticBitmap* m_bitmapStatus;
- wxStaticText* m_staticTextStatus;
- wxAnimationCtrl* m_animationControl1;
- wxStaticLine* m_staticlineHeader;
- wxPanel* m_panelProgress;
- wxTextCtrl* m_textCtrlStatus;
- wxBoxSizer* bSizer171;
- wxStaticText* m_staticTextLabelItemsProc;
- wxBoxSizer* bSizerItemsProc;
- wxStaticText* m_staticTextProcessedObj;
- wxStaticText* m_staticTextDataProcessed;
- wxStaticText* m_staticTextLabelItemsRem;
- wxBoxSizer* bSizerItemsRem;
- wxStaticText* m_staticTextRemainingObj;
- wxStaticText* m_staticTextDataRemaining;
- wxStaticText* m_staticText84;
- wxStaticText* m_staticTextSpeed;
- wxStaticText* m_staticTextLabelRemTime;
- wxStaticText* m_staticTextRemTime;
- wxStaticText* m_staticTextLabelElapsedTime;
- wxStaticText* m_staticTextTimeElapsed;
- zen::Graph2D* m_panelGraph;
- wxBoxSizer* bSizerFinalStat;
- wxListbook* m_listbookResult;
- wxStaticLine* m_staticline12;
- wxPanel* m_panelFooter;
- wxBoxSizer* bSizerExecFinished;
- wxStaticText* m_staticText87;
- ExecFinishedBox* m_comboBoxExecFinished;
- wxBoxSizer* bSizer28;
- wxButton* m_buttonOK;
- wxButton* m_buttonPause;
- wxButton* m_buttonAbort;
-
- // Virtual event handlers, overide them in your derived class
- virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
- virtual void OnIconize( wxIconizeEvent& event ) { event.Skip(); }
- virtual void OnOkay( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnPause( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnAbort( wxCommandEvent& event ) { event.Skip(); }
-
-
-public:
- wxGauge* m_gauge1;
-
- SyncStatusDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_FRAME_STYLE|wxTAB_TRAVERSAL );
-
- ~SyncStatusDlgGenerated();
-
+ private:
+
+ protected:
+ wxBoxSizer* bSizerTop;
+ wxPanel* m_panelHeader;
+ wxStaticBitmap* m_bitmapStatus;
+ wxStaticText* m_staticTextStatus;
+ wxAnimationCtrl* m_animationControl1;
+ wxStaticLine* m_staticlineHeader;
+ wxPanel* m_panelProgress;
+ wxTextCtrl* m_textCtrlStatus;
+ wxBoxSizer* bSizer171;
+ wxStaticText* m_staticTextLabelItemsProc;
+ wxBoxSizer* bSizerItemsProc;
+ wxStaticText* m_staticTextProcessedObj;
+ wxStaticText* m_staticTextDataProcessed;
+ wxStaticText* m_staticTextLabelItemsRem;
+ wxBoxSizer* bSizerItemsRem;
+ wxStaticText* m_staticTextRemainingObj;
+ wxStaticText* m_staticTextDataRemaining;
+ wxStaticText* m_staticText84;
+ wxStaticText* m_staticTextSpeed;
+ wxStaticText* m_staticTextLabelRemTime;
+ wxStaticText* m_staticTextRemTime;
+ wxStaticText* m_staticTextLabelElapsedTime;
+ wxStaticText* m_staticTextTimeElapsed;
+ zen::Graph2D* m_panelGraph;
+ wxBoxSizer* bSizerFinalStat;
+ wxListbook* m_listbookResult;
+ wxStaticLine* m_staticline12;
+ wxPanel* m_panelFooter;
+ wxBoxSizer* bSizerExecFinished;
+ wxStaticText* m_staticText87;
+ ExecFinishedBox* m_comboBoxExecFinished;
+ wxBoxSizer* bSizer28;
+ wxButton* m_buttonOK;
+ wxButton* m_buttonPause;
+ wxButton* m_buttonAbort;
+
+ // Virtual event handlers, overide them in your derived class
+ virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
+ virtual void OnIconize( wxIconizeEvent& event ) { event.Skip(); }
+ virtual void OnOkay( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnPause( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnAbort( wxCommandEvent& event ) { event.Skip(); }
+
+
+ public:
+ wxGauge* m_gauge1;
+
+ SyncStatusDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_FRAME_STYLE|wxTAB_TRAVERSAL );
+
+ ~SyncStatusDlgGenerated();
+
};
///////////////////////////////////////////////////////////////////////////////
/// Class LogControlGenerated
///////////////////////////////////////////////////////////////////////////////
-class LogControlGenerated : public wxPanel
+class LogControlGenerated : public wxPanel
{
-private:
-
-protected:
- ToggleButton* m_bpButtonErrors;
- ToggleButton* m_bpButtonWarnings;
- ToggleButton* m_bpButtonInfo;
- wxStaticLine* m_staticline13;
- wxTextCtrl* m_textCtrlInfo;
-
- // 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:
-
- LogControlGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxTAB_TRAVERSAL );
- ~LogControlGenerated();
-
+ private:
+
+ protected:
+ ToggleButton* m_bpButtonErrors;
+ ToggleButton* m_bpButtonWarnings;
+ ToggleButton* m_bpButtonInfo;
+ wxStaticLine* m_staticline13;
+ wxTextCtrl* m_textCtrlInfo;
+
+ // 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:
+
+ LogControlGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxTAB_TRAVERSAL );
+ ~LogControlGenerated();
+
};
///////////////////////////////////////////////////////////////////////////////
/// Class AboutDlgGenerated
///////////////////////////////////////////////////////////////////////////////
-class AboutDlgGenerated : public wxDialog
+class AboutDlgGenerated : public wxDialog
{
-private:
-
-protected:
- wxPanel* m_panelLogo;
- wxStaticBitmap* m_bitmap11;
- wxStaticText* m_build;
- wxPanel* m_panel33;
- wxBoxSizer* bSizerCodeInfo;
- wxStaticText* m_staticText72;
- wxHyperlinkCtrl* m_hyperlink9;
- wxHyperlinkCtrl* m_hyperlink11;
- wxHyperlinkCtrl* m_hyperlink10;
- wxHyperlinkCtrl* m_hyperlink13;
- wxHyperlinkCtrl* m_hyperlink7;
- wxHyperlinkCtrl* m_hyperlink16;
- wxHyperlinkCtrl* m_hyperlink8;
- wxHyperlinkCtrl* m_hyperlink15;
- wxHyperlinkCtrl* m_hyperlink12;
- wxHyperlinkCtrl* m_hyperlink18;
- wxHyperlinkCtrl* m_hyperlink14;
- wxHyperlinkCtrl* m_hyperlink21;
- wxPanel* m_panel40;
- wxPanel* m_panel39;
- wxStaticText* m_staticText83;
- wxHyperlinkCtrl* m_hyperlink3;
- wxStaticBitmap* m_bitmapPaypal;
- wxScrolledWindow* m_scrolledWindowTranslators;
- wxBoxSizer* bSizerTranslators;
- wxStaticText* m_staticText54;
- wxFlexGridSizer* fgSizerTranslators;
- wxHyperlinkCtrl* m_hyperlink1;
- wxStaticBitmap* m_bitmap9;
- wxHyperlinkCtrl* m_hyperlink2;
- wxStaticBitmap* m_bitmap10;
- wxStaticBitmap* m_bitmap13;
- wxHyperlinkCtrl* m_hyperlink5;
- wxButton* m_buttonOkay;
-
- // Virtual event handlers, overide them in your derived class
- virtual void OnClose( wxCloseEvent& 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 = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE );
- ~AboutDlgGenerated();
-
+ private:
+
+ protected:
+ wxPanel* m_panelLogo;
+ wxStaticBitmap* m_bitmap11;
+ wxStaticText* m_build;
+ wxPanel* m_panel33;
+ wxBoxSizer* bSizerCodeInfo;
+ wxStaticText* m_staticText72;
+ wxHyperlinkCtrl* m_hyperlink9;
+ wxHyperlinkCtrl* m_hyperlink11;
+ wxHyperlinkCtrl* m_hyperlink10;
+ wxHyperlinkCtrl* m_hyperlink13;
+ wxHyperlinkCtrl* m_hyperlink7;
+ wxHyperlinkCtrl* m_hyperlink16;
+ wxHyperlinkCtrl* m_hyperlink8;
+ wxHyperlinkCtrl* m_hyperlink15;
+ wxHyperlinkCtrl* m_hyperlink12;
+ wxHyperlinkCtrl* m_hyperlink18;
+ wxHyperlinkCtrl* m_hyperlink14;
+ wxHyperlinkCtrl* m_hyperlink21;
+ wxPanel* m_panel40;
+ wxPanel* m_panel39;
+ wxStaticText* m_staticText83;
+ wxHyperlinkCtrl* m_hyperlink3;
+ wxAnimationCtrl* m_animCtrlWink;
+ wxScrolledWindow* m_scrolledWindowTranslators;
+ wxBoxSizer* bSizerTranslators;
+ wxStaticText* m_staticText54;
+ wxFlexGridSizer* fgSizerTranslators;
+ wxHyperlinkCtrl* m_hyperlink1;
+ wxStaticBitmap* m_bitmap9;
+ wxHyperlinkCtrl* m_hyperlink2;
+ wxStaticBitmap* m_bitmap10;
+ wxStaticBitmap* m_bitmap13;
+ wxHyperlinkCtrl* m_hyperlink5;
+ wxButton* m_buttonOkay;
+
+ // Virtual event handlers, overide them in your derived class
+ virtual void OnClose( wxCloseEvent& 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 = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE );
+ ~AboutDlgGenerated();
+
};
///////////////////////////////////////////////////////////////////////////////
/// Class MessageDlgGenerated
///////////////////////////////////////////////////////////////////////////////
-class MessageDlgGenerated : public wxDialog
+class MessageDlgGenerated : public wxDialog
{
-private:
-
-protected:
- wxStaticBitmap* m_bitmapMsgType;
- wxTextCtrl* m_textCtrlMessage;
- wxStaticLine* m_staticline6;
- wxPanel* m_panel33;
- wxCheckBox* m_checkBoxCustom;
- wxButton* m_buttonCustom1;
- wxButton* m_buttonCustom2;
- wxButton* m_buttonCancel;
-
- // Virtual event handlers, overide them in your derived class
- virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
- virtual void OnButton1( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnButton2( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); }
-
-
-public:
-
- MessageDlgGenerated( 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|wxMINIMIZE_BOX|wxRESIZE_BORDER );
- ~MessageDlgGenerated();
-
+ private:
+
+ protected:
+ wxStaticBitmap* m_bitmapMsgType;
+ wxTextCtrl* m_textCtrlMessage;
+ wxStaticLine* m_staticline6;
+ wxPanel* m_panel33;
+ wxCheckBox* m_checkBoxCustom;
+ wxButton* m_buttonCustom1;
+ wxButton* m_buttonCustom2;
+ wxButton* m_buttonCancel;
+
+ // Virtual event handlers, overide them in your derived class
+ virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
+ virtual void OnButton1( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnButton2( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); }
+
+
+ public:
+
+ MessageDlgGenerated( 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|wxMINIMIZE_BOX|wxRESIZE_BORDER );
+ ~MessageDlgGenerated();
+
};
///////////////////////////////////////////////////////////////////////////////
/// Class DeleteDlgGenerated
///////////////////////////////////////////////////////////////////////////////
-class DeleteDlgGenerated : public wxDialog
+class DeleteDlgGenerated : public wxDialog
{
-private:
-
-protected:
- wxPanel* m_panelHeader;
- wxStaticBitmap* m_bitmap12;
- wxStaticText* m_staticTextHeader;
- wxStaticLine* m_staticline91;
- wxTextCtrl* m_textCtrlFileList;
- wxStaticLine* m_staticline9;
- wxPanel* m_panel36;
- wxCheckBox* m_checkBoxUseRecycler;
- wxCheckBox* m_checkBoxDeleteBothSides;
- 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 OnDelOnBothSides( 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 = _("Confirm"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxMAXIMIZE_BOX|wxMINIMIZE_BOX|wxRESIZE_BORDER );
- ~DeleteDlgGenerated();
-
+ private:
+
+ protected:
+ wxPanel* m_panelHeader;
+ wxStaticBitmap* m_bitmap12;
+ wxStaticText* m_staticTextHeader;
+ wxStaticLine* m_staticline91;
+ wxTextCtrl* m_textCtrlFileList;
+ wxStaticLine* m_staticline9;
+ wxPanel* m_panel36;
+ wxCheckBox* m_checkBoxUseRecycler;
+ wxCheckBox* m_checkBoxDeleteBothSides;
+ 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 OnDelOnBothSides( 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 = _("Confirm"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxMAXIMIZE_BOX|wxMINIMIZE_BOX|wxRESIZE_BORDER );
+ ~DeleteDlgGenerated();
+
};
///////////////////////////////////////////////////////////////////////////////
/// Class FilterDlgGenerated
///////////////////////////////////////////////////////////////////////////////
-class FilterDlgGenerated : public wxDialog
+class FilterDlgGenerated : public wxDialog
{
-private:
-
-protected:
- wxStaticBitmap* m_bitmap26;
- wxPanel* m_panel8;
- wxStaticText* m_staticTexHeader;
- wxStaticText* m_staticText44;
- wxBitmapButton* m_bpButtonHelp;
- wxStaticBitmap* m_bitmapInclude;
- wxTextCtrl* m_textCtrlInclude;
- wxStaticBitmap* m_bitmapExclude;
- wxTextCtrl* m_textCtrlExclude;
- wxStaticBitmap* m_bitmapFilterDate;
- wxSpinCtrl* m_spinCtrlTimespan;
- wxChoice* m_choiceUnitTimespan;
- wxStaticBitmap* m_bitmapFilterSize;
- wxStaticText* m_staticText101;
- wxSpinCtrl* m_spinCtrlMinSize;
- wxChoice* m_choiceUnitMinSize;
- wxStaticText* m_staticText102;
- wxSpinCtrl* m_spinCtrlMaxSize;
- wxChoice* m_choiceUnitMaxSize;
- wxButton* m_button9;
- wxButton* m_buttonOk;
- wxButton* m_button17;
-
- // Virtual event handlers, overide them in your derived class
- virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
- virtual void OnHelp( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnUpdateNameFilter( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnUpdateChoice( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnDefault( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnApply( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); }
-
-
-public:
-
- FilterDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Configure filter"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
- ~FilterDlgGenerated();
-
+ private:
+
+ protected:
+ wxPanel* m_panel8;
+ wxStaticBitmap* m_bitmap26;
+ wxStaticText* m_staticTexHeader;
+ wxStaticText* m_staticText44;
+ wxBitmapButton* m_bpButtonHelp;
+ wxStaticBitmap* m_bitmapInclude;
+ wxTextCtrl* m_textCtrlInclude;
+ wxStaticBitmap* m_bitmapExclude;
+ wxTextCtrl* m_textCtrlExclude;
+ wxStaticBitmap* m_bitmapFilterDate;
+ wxSpinCtrl* m_spinCtrlTimespan;
+ wxChoice* m_choiceUnitTimespan;
+ wxStaticBitmap* m_bitmapFilterSize;
+ wxStaticText* m_staticText101;
+ wxSpinCtrl* m_spinCtrlMinSize;
+ wxChoice* m_choiceUnitMinSize;
+ wxStaticText* m_staticText102;
+ wxSpinCtrl* m_spinCtrlMaxSize;
+ wxChoice* m_choiceUnitMaxSize;
+ wxButton* m_button9;
+ wxButton* m_buttonOk;
+ wxButton* m_button17;
+
+ // Virtual event handlers, overide them in your derived class
+ virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
+ virtual void OnHelp( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnUpdateNameFilter( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnUpdateChoice( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnDefault( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnApply( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); }
+
+
+ public:
+
+ FilterDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Configure filter"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
+ ~FilterDlgGenerated();
+
};
///////////////////////////////////////////////////////////////////////////////
/// Class GlobalSettingsDlgGenerated
///////////////////////////////////////////////////////////////////////////////
-class GlobalSettingsDlgGenerated : public wxDialog
+class GlobalSettingsDlgGenerated : public wxDialog
{
-private:
-
-protected:
- wxStaticBitmap* m_bitmapSettings;
- wxPanel* m_panel8;
- wxStaticText* m_staticText56;
- wxCheckBox* m_checkBoxTransCopy;
- wxStaticText* m_staticText82;
- wxCheckBox* m_checkBoxCopyLocked;
- wxStaticText* m_staticTextCopyLocked;
- wxCheckBox* m_checkBoxCopyPermissions;
- wxStaticText* m_staticText8211;
- zen::BitmapButton* m_buttonResetDialogs;
- wxGrid* m_gridCustomCommand;
- wxBitmapButton* m_bpButtonAddRow;
- wxBitmapButton* m_bpButtonRemoveRow;
- wxButton* m_button9;
- wxButton* m_buttonOkay;
- wxButton* m_button29;
-
- // Virtual event handlers, overide them in your derived class
- virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
- virtual void OnResetDialogs( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnAddRow( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnRemoveRow( 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:
-
- GlobalSettingsDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Global settings"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
- ~GlobalSettingsDlgGenerated();
-
+ private:
+
+ protected:
+ wxPanel* m_panel8;
+ wxStaticBitmap* m_bitmapSettings;
+ wxStaticText* m_staticText56;
+ wxCheckBox* m_checkBoxTransCopy;
+ wxStaticText* m_staticText82;
+ wxCheckBox* m_checkBoxCopyLocked;
+ wxStaticText* m_staticTextCopyLocked;
+ wxCheckBox* m_checkBoxCopyPermissions;
+ wxStaticText* m_staticText8211;
+ zen::BitmapButton* m_buttonResetDialogs;
+ wxGrid* m_gridCustomCommand;
+ wxBitmapButton* m_bpButtonAddRow;
+ wxBitmapButton* m_bpButtonRemoveRow;
+ wxButton* m_button9;
+ wxButton* m_buttonOkay;
+ wxButton* m_button29;
+
+ // Virtual event handlers, overide them in your derived class
+ virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
+ virtual void OnResetDialogs( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnAddRow( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnRemoveRow( 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:
+
+ GlobalSettingsDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Global settings"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
+ ~GlobalSettingsDlgGenerated();
+
};
///////////////////////////////////////////////////////////////////////////////
/// Class SyncPreviewDlgGenerated
///////////////////////////////////////////////////////////////////////////////
-class SyncPreviewDlgGenerated : public wxDialog
+class SyncPreviewDlgGenerated : public wxDialog
{
-private:
-
-protected:
- zen::BitmapButton* m_buttonStartSync;
- wxStaticLine* m_staticline16;
- wxStaticText* m_staticTextVariant;
- wxStaticLine* m_staticline14;
- wxStaticBitmap* m_bitmapCreateLeft;
- wxStaticBitmap* m_bitmapUpdateLeft;
- wxStaticBitmap* m_bitmapDeleteLeft;
- wxStaticBitmap* m_bitmapData;
- wxStaticBitmap* m_bitmapDeleteRight;
- wxStaticBitmap* m_bitmapUpdateRight;
- wxStaticBitmap* m_bitmapCreateRight;
- wxStaticText* m_staticTextCreateLeft;
- wxStaticText* m_staticTextUpdateLeft;
- wxStaticText* m_staticTextDeleteLeft;
- wxStaticText* m_staticTextData;
- wxStaticText* m_staticTextDeleteRight;
- wxStaticText* m_staticTextUpdateRight;
- wxStaticText* m_staticTextCreateRight;
- wxStaticLine* m_staticline12;
- wxCheckBox* m_checkBoxDontShowAgain;
- wxButton* m_button16;
-
- // 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:
-
- SyncPreviewDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Summary"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE );
- ~SyncPreviewDlgGenerated();
-
+ private:
+
+ protected:
+ zen::BitmapButton* m_buttonStartSync;
+ wxStaticLine* m_staticline16;
+ wxStaticText* m_staticTextVariant;
+ wxStaticLine* m_staticline14;
+ wxStaticBitmap* m_bitmapCreateLeft;
+ wxStaticBitmap* m_bitmapUpdateLeft;
+ wxStaticBitmap* m_bitmapDeleteLeft;
+ wxStaticBitmap* m_bitmapData;
+ wxStaticBitmap* m_bitmapDeleteRight;
+ wxStaticBitmap* m_bitmapUpdateRight;
+ wxStaticBitmap* m_bitmapCreateRight;
+ wxStaticText* m_staticTextCreateLeft;
+ wxStaticText* m_staticTextUpdateLeft;
+ wxStaticText* m_staticTextDeleteLeft;
+ wxStaticText* m_staticTextData;
+ wxStaticText* m_staticTextDeleteRight;
+ wxStaticText* m_staticTextUpdateRight;
+ wxStaticText* m_staticTextCreateRight;
+ wxStaticLine* m_staticline12;
+ wxCheckBox* m_checkBoxDontShowAgain;
+ wxButton* m_button16;
+
+ // 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:
+
+ SyncPreviewDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Summary"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE );
+ ~SyncPreviewDlgGenerated();
+
};
///////////////////////////////////////////////////////////////////////////////
/// Class PopupFrameGenerated1
///////////////////////////////////////////////////////////////////////////////
-class PopupFrameGenerated1 : public wxFrame
+class PopupFrameGenerated1 : public wxFrame
{
-private:
-
-protected:
-
-public:
- wxStaticBitmap* m_bitmapLeft;
- wxStaticText* m_staticTextMain;
-
- PopupFrameGenerated1( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxFRAME_NO_TASKBAR|wxSTAY_ON_TOP|wxSTATIC_BORDER );
-
- ~PopupFrameGenerated1();
-
+ private:
+
+ protected:
+
+ public:
+ wxStaticBitmap* m_bitmapLeft;
+ wxStaticText* m_staticTextMain;
+
+ PopupFrameGenerated1( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxFRAME_NO_TASKBAR|wxSTAY_ON_TOP|wxSTATIC_BORDER );
+
+ ~PopupFrameGenerated1();
+
};
///////////////////////////////////////////////////////////////////////////////
/// Class SearchDialogGenerated
///////////////////////////////////////////////////////////////////////////////
-class SearchDialogGenerated : public wxDialog
+class SearchDialogGenerated : public wxDialog
{
-private:
-
-protected:
- wxStaticText* m_staticText101;
- wxTextCtrl* m_textCtrlSearchTxt;
- wxCheckBox* m_checkBoxMatchCase;
- wxButton* m_buttonFindNext;
- wxButton* m_button29;
-
- // Virtual event handlers, overide them in your derived class
- virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
- virtual void OnText( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnFindNext( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); }
-
-
-public:
-
- SearchDialogGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Find"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE );
- ~SearchDialogGenerated();
-
+ private:
+
+ protected:
+ wxStaticText* m_staticText101;
+ wxTextCtrl* m_textCtrlSearchTxt;
+ wxCheckBox* m_checkBoxMatchCase;
+ wxButton* m_buttonFindNext;
+ wxButton* m_button29;
+
+ // Virtual event handlers, overide them in your derived class
+ virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
+ virtual void OnText( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnFindNext( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); }
+
+
+ public:
+
+ SearchDialogGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Find"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE );
+ ~SearchDialogGenerated();
+
};
///////////////////////////////////////////////////////////////////////////////
/// Class SelectTimespanDlgGenerated
///////////////////////////////////////////////////////////////////////////////
-class SelectTimespanDlgGenerated : public wxDialog
+class SelectTimespanDlgGenerated : public wxDialog
{
-private:
-
-protected:
- wxCalendarCtrl* m_calendarFrom;
- wxCalendarCtrl* m_calendarTo;
- wxButton* m_buttonOkay;
- wxButton* m_button29;
-
- // 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:
+ wxCalendarCtrl* m_calendarFrom;
+ wxCalendarCtrl* m_calendarTo;
+ wxButton* m_buttonOkay;
+ wxButton* m_button29;
+
+ // 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();
+
};
#endif //__GUI_GENERATED_H__
diff --git a/ui/gui_status_handler.cpp b/ui/gui_status_handler.cpp
index 54dd7b40..63e394ff 100644
--- a/ui/gui_status_handler.cpp
+++ b/ui/gui_status_handler.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "gui_status_handler.h"
@@ -237,10 +237,10 @@ SyncStatusHandler::~SyncStatusHandler()
if (isCloseProgressDlgCommand(finalCommand))
showFinalResults = false; //take precedence over current visibility status
else if (!finalCommand.empty())
- {
- auto cmdexp = utfCvrtTo<wxString>(expandMacros(utfCvrtTo<Zstring>(finalCommand)));
- shellExecute(cmdexp);
- }
+ {
+ auto cmdexp = utfCvrtTo<wxString>(expandMacros(utfCvrtTo<Zstring>(finalCommand)));
+ shellExecute(cmdexp);
+ }
}
//notify to syncStatusFrame that current process has ended
diff --git a/ui/gui_status_handler.h b/ui/gui_status_handler.h
index 3cc0a6bf..e1940a2d 100644
--- a/ui/gui_status_handler.h
+++ b/ui/gui_status_handler.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef GUISTATUSHANDLER_H_INCLUDED
@@ -22,7 +22,7 @@ class wxCommandEvent;
class GuiAbortProcess {};
//classes handling sync and compare error as well as status information
-class CompareStatusHandler : private wxEvtHandler, public zen::StatusHandler
+class CompareStatusHandler : private wxEvtHandler, public zen::StatusHandler //throw GuiAbortProcess
{
public:
CompareStatusHandler(MainDialog& dlg);
diff --git a/ui/main_dlg.cpp b/ui/main_dlg.cpp
index 894b0b11..2d52d45e 100644
--- a/ui/main_dlg.cpp
+++ b/ui/main_dlg.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "main_dlg.h"
@@ -17,6 +17,7 @@
#include <wx/app.h>
#include <wx/dcmemory.h>
#include <wx/filedlg.h>
+#include <zen/format_unit.h>
#include <wx+/context_menu.h>
#include "folder_history_box.h"
#include <wx+/button.h>
@@ -24,7 +25,6 @@
#include "../synchronization.h"
#include "../algorithm.h"
#include <wx+/app_main.h>
-#include <wx+/format_unit.h>
#include "check_version.h"
#include "gui_status_handler.h"
#include "sync_cfg.h"
@@ -158,13 +158,13 @@ private:
}
virtual MainConfiguration getMainConfig() const { return mainDlg.getConfig().mainCfg; }
- virtual void OnAltCompCfgChange() { mainDlg.applyCompareConfig(false); } //false: do not change preview status
- virtual void OnAltSyncCfgChange() { mainDlg.applySyncConfig(); }
+ virtual void OnAltCompCfgChange() { mainDlg.applyCompareConfig(); }
+ virtual void OnAltSyncCfgChange() { mainDlg.applySyncConfig (); }
virtual void removeAltCompCfg()
{
FolderPairPanelBasic<GuiPanel>::removeAltCompCfg();
- mainDlg.applyCompareConfig(false); //false: do not change preview status
+ mainDlg.applyCompareConfig();
}
virtual void removeAltSyncCfg()
@@ -196,8 +196,11 @@ public:
dirNameLeft (*m_panelLeft, *m_buttonSelectDirLeft, *m_directoryLeft),
dirNameRight(*m_panelRight, *m_buttonSelectDirRight, *m_directoryRight)
{
- dirNameLeft .Connect(EVENT_ON_DIR_SELECTED, wxCommandEventHandler(MainDialog::OnDirSelected), nullptr, &mainDialog);
- dirNameRight.Connect(EVENT_ON_DIR_SELECTED, wxCommandEventHandler(MainDialog::OnDirSelected), nullptr, &mainDialog);
+ dirNameLeft .Connect(EVENT_ON_DIR_SELECTED, wxCommandEventHandler(MainDialog::onDirSelected), nullptr, &mainDialog);
+ dirNameRight.Connect(EVENT_ON_DIR_SELECTED, wxCommandEventHandler(MainDialog::onDirSelected), nullptr, &mainDialog);
+
+ dirNameLeft .Connect(EVENT_ON_DIR_MANUAL_CORRECTION, wxCommandEventHandler(MainDialog::onDirManualCorrection), nullptr, &mainDialog);
+ dirNameRight.Connect(EVENT_ON_DIR_MANUAL_CORRECTION, wxCommandEventHandler(MainDialog::onDirManualCorrection), nullptr, &mainDialog);
}
void setValues(const wxString& leftDir,
@@ -240,8 +243,11 @@ public:
*mainDialog.m_directoryRight,
*mainDialog.m_staticTextFinalPathRight)
{
- dirNameLeft .Connect(EVENT_ON_DIR_SELECTED, wxCommandEventHandler(MainDialog::OnDirSelected), nullptr, &mainDialog);
- dirNameRight.Connect(EVENT_ON_DIR_SELECTED, wxCommandEventHandler(MainDialog::OnDirSelected), nullptr, &mainDialog);
+ dirNameLeft .Connect(EVENT_ON_DIR_SELECTED, wxCommandEventHandler(MainDialog::onDirSelected), nullptr, &mainDialog);
+ dirNameRight.Connect(EVENT_ON_DIR_SELECTED, wxCommandEventHandler(MainDialog::onDirSelected), nullptr, &mainDialog);
+
+ dirNameLeft .Connect(EVENT_ON_DIR_MANUAL_CORRECTION, wxCommandEventHandler(MainDialog::onDirManualCorrection), nullptr, &mainDialog);
+ dirNameRight.Connect(EVENT_ON_DIR_MANUAL_CORRECTION, wxCommandEventHandler(MainDialog::onDirManualCorrection), nullptr, &mainDialog);
}
void setValues(const wxString& leftDir,
@@ -264,53 +270,6 @@ private:
};
-//workaround for wxWidgets: small hack to update menu items: actually this is a wxWidgets bug (affects Windows- and Linux-build)
-class MenuItemUpdater
-{
-public:
- MenuItemUpdater(wxMenu& menuToUpdate) : menuToUpdate_(menuToUpdate) {}
-
- ~MenuItemUpdater()
- {
- wxMenuItemList allItems = menuToUpdate_.GetMenuItems();
-
- //retrieve menu item positions: unfortunately wxMenu doesn't offer a better way
- int index = 0;
- for (auto itemIter = allItems.begin(); itemIter != allItems.end(); ++itemIter, ++index) //wxMenuItemList + std::for_each screws up with VS2010!
- {
- wxMenuItem* item = *itemIter;
-
- auto iter = menuItems.find(item);
- if (iter != menuItems.end())
- {
- /*
- menuToUpdate_.Remove(item); ->this simple sequence crashes on Kubuntu x64, wxWidgets 2.9.2
- menuToUpdate_.Insert(index, item);
- */
-
- const wxBitmap& bmp = iter->second;
-
- wxMenuItem* newItem = new wxMenuItem(&menuToUpdate_, item->GetId(), item->GetItemLabel());
- newItem->SetBitmap(bmp);
-
- menuToUpdate_.Destroy(item); //actual workaround
- menuToUpdate_.Insert(index, newItem); //
- }
- }
- }
-
- void markForUpdate(wxMenuItem* newEntry, const wxBitmap& bmp)
- {
- menuItems.insert(std::make_pair(newEntry, bmp));
- }
-
-private:
- wxMenu& menuToUpdate_;
- std::map<wxMenuItem*, wxBitmap> menuItems;
-};
-
-
-
#ifdef FFS_WIN
class PanelMoveWindow : public MouseMoveWindow
{
@@ -337,11 +296,65 @@ private:
#endif
+namespace
+{
+//workaround for wxWidgets: small hack to update menu items: actually this is a wxWidgets bug (affects Windows- and Linux-build)
+void setMenuItemImage(wxMenuItem*& menuItem, const wxBitmap& bmp)
+{
+ assert(menuItem->GetKind() == wxITEM_NORMAL);
+
+ //support polling
+ if (isEqual(bmp, menuItem->GetBitmap()))
+ return;
+
+ if (wxMenu* menu = menuItem->GetMenu())
+ {
+ int pos = menu->GetMenuItems().IndexOf(menuItem);
+ if (pos != wxNOT_FOUND)
+ {
+ /*
+ menu->Remove(item); ->this simple sequence crashes on Kubuntu x64, wxWidgets 2.9.2
+ menu->Insert(index, item);
+ */
+ const bool enabled = menuItem->IsEnabled();
+ wxMenuItem* newItem = new wxMenuItem(menu, menuItem->GetId(), menuItem->GetItemLabel());
+ newItem->SetBitmap(bmp);
+
+ menu->Destroy(menuItem); //actual workaround
+ menuItem = menu->Insert(pos, newItem); //don't forget to update input item pointer!
+
+ if (!enabled)
+ menuItem->Enable(false); //do not enable BEFORE appending item! wxWidgets screws up for yet another crappy reason
+ }
+ }
+}
+
//##################################################################################################################################
-MainDialog::MainDialog(const std::vector<wxString>& cfgFileNames, const xmlAccess::XmlGlobalSettings& globalSettings) :
- MainDialogGenerated(nullptr)
+
+xmlAccess::XmlGlobalSettings retrieveGlobalCfgFromDisk() //blocks on GUI on errors!
+{
+ using namespace xmlAccess;
+ XmlGlobalSettings globalCfg;
+ try
+ {
+ if (fileExists(toZ(getGlobalConfigFile())))
+ readConfig(globalCfg); //throw FfsXmlError
+ //else: globalCfg already has default values
+ }
+ catch (const FfsXmlError& e)
+ {
+ if (e.getSeverity() != FfsXmlError::WARNING) //ignore parsing errors: should be migration problems only *cross-fingers*
+ wxMessageBox(e.toString(), _("Error"), wxOK | wxICON_ERROR);
+ }
+ return globalCfg;
+}
+}
+
+
+void MainDialog::create(const std::vector<wxString>& cfgFileNames)
{
- xmlAccess::XmlGuiConfig guiCfg; //structure to receive gui settings, already defaulted!!
+ using namespace xmlAccess;
+ const XmlGlobalSettings globalSettings = retrieveGlobalCfgFromDisk();
std::vector<wxString> filenames;
if (!cfgFileNames.empty()) //1. this one has priority
@@ -375,93 +388,77 @@ MainDialog::MainDialog(const std::vector<wxString>& cfgFileNames, const xmlAcces
}
}
+ XmlGuiConfig guiCfg; //structure to receive gui settings with default values
+
bool loadCfgSuccess = false;
if (!filenames.empty())
try
{
- //load XML
- xmlAccess::convertConfig(toZ(filenames), guiCfg); //throw xmlAccess::FfsXmlError
-
+ mergeConfigs(toZ(filenames), guiCfg); //throw FfsXmlError
loadCfgSuccess = true;
}
- catch (const xmlAccess::FfsXmlError& error)
+ catch (const FfsXmlError& error)
{
- if (error.getSeverity() == xmlAccess::FfsXmlError::WARNING)
- wxMessageBox(error.toString(), _("Warning"), wxOK | wxICON_WARNING, this);
+ if (error.getSeverity() == FfsXmlError::WARNING)
+ wxMessageBox(error.toString(), _("Warning"), wxOK | wxICON_WARNING);
+ //what about simulating changed config on parsing errors????
else
- wxMessageBox(error.toString(), _("Error"), wxOK | wxICON_ERROR, this);
+ wxMessageBox(error.toString(), _("Error"), wxOK | wxICON_ERROR);
}
const bool startComparisonImmediately = !cfgFileNames.empty() && loadCfgSuccess;
- init(guiCfg,
- globalSettings,
- startComparisonImmediately);
+ //------------------------------------------------------------------------------------------
- setLastUsedConfig(filenames, loadCfgSuccess ? guiCfg : xmlAccess::XmlGuiConfig()); //simulate changed config on parsing errors
+ create_impl(guiCfg, filenames, globalSettings, startComparisonImmediately);
}
-MainDialog::MainDialog(const std::vector<wxString>& referenceFiles,
- const xmlAccess::XmlGuiConfig& guiCfg,
- const xmlAccess::XmlGlobalSettings& globalSettings,
- bool startComparison) :
- MainDialogGenerated(nullptr)
+void MainDialog::create(const xmlAccess::XmlGuiConfig& guiCfg,
+ bool startComparison)
{
- init(guiCfg,
- globalSettings,
- startComparison);
+ create_impl(guiCfg, std::vector<wxString>(), retrieveGlobalCfgFromDisk(), startComparison);
+}
+
- setLastUsedConfig(referenceFiles, guiCfg);
+void MainDialog::create(const xmlAccess::XmlGuiConfig& guiCfg,
+ const std::vector<wxString>& referenceFiles,
+ const xmlAccess::XmlGlobalSettings& globalSettings,
+ bool startComparison)
+{
+ create_impl(guiCfg, referenceFiles, globalSettings, startComparison);
}
-MainDialog::~MainDialog()
+void MainDialog::create_impl(const xmlAccess::XmlGuiConfig& guiCfg,
+ const std::vector<wxString>& referenceFiles,
+ const xmlAccess::XmlGlobalSettings& globalSettings,
+ bool startComparison)
{
- try //save "GlobalSettings.xml"
- {
- xmlAccess::writeConfig(getGlobalCfgBeforeExit()); //throw FfsXmlError
- }
- catch (const xmlAccess::FfsXmlError& e)
+ try
{
- wxMessageBox(e.toString().c_str(), _("Error"), wxOK | wxICON_ERROR, this);
+ //we need to set language *before* creating MainDialog!
+ setLanguage(globalSettings.programLanguage); //throw FileError
}
-
- try //save "LastRun.ffs_gui"
+ catch (const FileError& e)
{
- xmlAccess::writeConfig(getConfig(), toZ(lastRunConfigName())); //throw FfsXmlError
+ wxMessageBox(e.toString().c_str(), _("Error"), wxOK | wxICON_ERROR);
+ //continue!
}
- //don't annoy users on read-only drives: it's enough to show a single error message when saving global config
- catch (const xmlAccess::FfsXmlError&) {}
-
- //important! event source wxTheApp is NOT dependent on this instance -> disconnect!
- wxTheApp->Disconnect(wxEVT_KEY_DOWN, wxKeyEventHandler(MainDialog::OnGlobalKeyEvent), nullptr, this);
- wxTheApp->Disconnect(wxEVT_CHAR_HOOK, wxKeyEventHandler(MainDialog::OnGlobalKeyEvent), nullptr, this);
-
- auiMgr.UnInit();
-
- //no need for wxEventHandler::Disconnect() here; event sources are components of this window and are destroyed, too
-}
-
-
-void MainDialog::onQueryEndSession()
-{
- try { xmlAccess::writeConfig(getGlobalCfgBeforeExit()); }
- catch (const xmlAccess::FfsXmlError&) {} //we try our best do to something useful in this extreme situation - no reason to notify or even log errors here!
- try { xmlAccess::writeConfig(getConfig(), toZ(lastRunConfigName())); }
- catch (const xmlAccess::FfsXmlError&) {}
+ MainDialog* frame = new MainDialog(guiCfg, referenceFiles, globalSettings, startComparison);
+ frame->Show();
}
-void MainDialog::init(const xmlAccess::XmlGuiConfig& guiCfg,
- const xmlAccess::XmlGlobalSettings& globalSettings,
- bool startComparison)
+MainDialog::MainDialog(const xmlAccess::XmlGuiConfig& guiCfg,
+ const std::vector<wxString>& referenceFiles,
+ const xmlAccess::XmlGlobalSettings& globalSettings,
+ bool startComparison) :
+ MainDialogGenerated(nullptr),
+ showSyncAction_(false),
+ folderHistoryLeft (std::make_shared<FolderHistory>()), //make sure it is always bound
+ folderHistoryRight(std::make_shared<FolderHistory>()) //
{
- showSyncAction_ = false;
-
- folderHistoryLeft = std::make_shared<FolderHistory>(); //make sure it is always bound
- folderHistoryRight = std::make_shared<FolderHistory>(); //
-
m_directoryLeft ->init(folderHistoryLeft);
m_directoryRight->init(folderHistoryRight);
@@ -516,6 +513,14 @@ void MainDialog::init(const xmlAccess::XmlGuiConfig& guiCfg,
auiMgr.Update();
+ //give panel captions bold typeface
+ if (wxAuiDockArt* artProvider = auiMgr.GetArtProvider())
+ {
+ wxFont font = artProvider->GetFont(wxAUI_DOCKART_CAPTION_FONT);
+ font.SetWeight(wxFONTWEIGHT_BOLD);
+ artProvider->SetFont(wxAUI_DOCKART_CAPTION_FONT, font);
+ }
+
auiMgr.GetPane(m_gridNavi).MinSize(-1, -1); //we successfully tricked wxAuiManager into setting an initial Window size :> incomplete API anyone??
auiMgr.Update(); //
@@ -581,16 +586,14 @@ void MainDialog::init(const xmlAccess::XmlGuiConfig& guiCfg,
//initialize and load configuration
setGlobalCfgOnInit(globalSettings);
- setConfig(guiCfg);
+ setConfig(guiCfg, referenceFiles);
//set icons for this dialog
- m_buttonCompare ->setBitmapFront(GlobalResources::getImage(L"compare"));
+ m_buttonCompare ->setBitmapFront(GlobalResources::getImage(L"compare"), 5);
m_bpButtonSyncConfig->SetBitmapLabel(GlobalResources::getImage(L"syncConfig"));
m_bpButtonCmpConfig ->SetBitmapLabel(GlobalResources::getImage(L"cmpConfig"));
- m_bpButtonSave ->SetBitmapLabel(GlobalResources::getImage(L"save"));
m_bpButtonLoad ->SetBitmapLabel(GlobalResources::getImage(L"load"));
- m_bpButtonAddPair ->SetBitmapLabel(GlobalResources::getImage(L"addFolderPair"));
- //m_bitmapResizeCorner->SetBitmap(mirrorIfRtl(GlobalResources::getImage(L"statusEdge")));
+ m_bpButtonAddPair ->SetBitmapLabel(GlobalResources::getImage(L"item_add"));
{
IconBuffer tmp(IconBuffer::SIZE_SMALL);
const wxBitmap bmpFile = tmp.genericFileIcon();
@@ -604,32 +607,26 @@ void MainDialog::init(const xmlAccess::XmlGuiConfig& guiCfg,
m_panelTopButtons->Layout(); //wxButtonWithImage size might have changed
- //menu icons: workaround for wxWidgets: small hack to update menu items: actually this is a wxWidgets bug (affects Windows- and Linux-build)
- MenuItemUpdater updateMenuFile(*m_menuFile);
-
const int dummySize = 5;
wxImage dummyImg(dummySize, dummySize);
if (!dummyImg.HasAlpha())
dummyImg.InitAlpha();
std::fill(dummyImg.GetAlpha(), dummyImg.GetAlpha() + dummySize * dummySize, wxIMAGE_ALPHA_TRANSPARENT);
- updateMenuFile.markForUpdate(m_menuItem10, GlobalResources::getImage(L"compareSmall"));
- updateMenuFile.markForUpdate(m_menuItem11, GlobalResources::getImage(L"syncSmall"));
-
- updateMenuFile.markForUpdate(m_menuItemNew, dummyImg); //it's ridiculous, but wxWidgets screws up aligning short-cut label texts if we don't set an image!
- //updateMenuFile.markForUpdate(m_menuItemSave, dummyImg); //
- updateMenuFile.markForUpdate(m_menuItemSave, GlobalResources::getImage(L"saveSmall"));
+ //menu icons: workaround for wxWidgets: small hack to update menu items: actually this is a wxWidgets bug (affects Windows- and Linux-build)
+ setMenuItemImage(m_menuItem10, GlobalResources::getImage(L"compareSmall"));
+ setMenuItemImage(m_menuItem11, GlobalResources::getImage(L"syncSmall"));
- //updateMenuFile.markForUpdate(m_menuItemSaveAs, GlobalResources::getImage(L"saveSmall"));
- updateMenuFile.markForUpdate(m_menuItemLoad, GlobalResources::getImage(L"loadSmall"));
+ setMenuItemImage(m_menuItemNew, dummyImg); //it's ridiculous, but wxWidgets screws up aligning short-cut label texts if we don't set an image!
+ setMenuItemImage(m_menuItemSaveAs, dummyImg);
+ setMenuItemImage(m_menuItemLoad, GlobalResources::getImage(L"loadSmall"));
+ setMenuItemImage(m_menuItemSave, GlobalResources::getImage(L"saveSmall"));
- MenuItemUpdater updateMenuAdv(*m_menuAdvanced);
- updateMenuAdv.markForUpdate(m_menuItemGlobSett, GlobalResources::getImage(L"settingsSmall"));
- updateMenuAdv.markForUpdate(m_menuItem7, GlobalResources::getImage(L"batchSmall"));
+ setMenuItemImage(m_menuItemGlobSett, GlobalResources::getImage(L"settingsSmall"));
+ setMenuItemImage(m_menuItem7, GlobalResources::getImage(L"batchSmall"));
- MenuItemUpdater updateMenuHelp(*m_menuHelp);
- updateMenuHelp.markForUpdate(m_menuItemManual, GlobalResources::getImage(L"helpSmall"));
- updateMenuHelp.markForUpdate(m_menuItemAbout, GlobalResources::getImage(L"aboutSmall"));
+ setMenuItemImage(m_menuItemManual, GlobalResources::getImage(L"helpSmall"));
+ setMenuItemImage(m_menuItemAbout, GlobalResources::getImage(L"aboutSmall"));
#ifdef FFS_LINUX
m_menuItemCheckVer->Enable(zen::isPortableVersion()); //disable update check for Linux installer-based version -> handled by .deb
@@ -639,7 +636,7 @@ void MainDialog::init(const xmlAccess::XmlGuiConfig& guiCfg,
std::for_each(zen::ExistingTranslations::get().begin(), ExistingTranslations::get().end(),
[&](const ExistingTranslations::Entry& entry)
{
- wxMenuItem* newItem = new wxMenuItem(m_menuLanguages, wxID_ANY, entry.languageName, wxEmptyString, wxITEM_NORMAL );
+ wxMenuItem* newItem = new wxMenuItem(m_menuLanguages, wxID_ANY, entry.languageName);
newItem->SetBitmap(GlobalResources::getImage(entry.languageFlag));
//map menu item IDs with language IDs: evaluated when processing event handler
@@ -745,15 +742,53 @@ void MainDialog::init(const xmlAccess::XmlGuiConfig& guiCfg,
}
}
}
- //----------------------------------------------------------------------------------------------------------------------------------------------------------------
}
+MainDialog::~MainDialog()
+{
+ try //save "GlobalSettings.xml"
+ {
+ xmlAccess::writeConfig(getGlobalCfgBeforeExit()); //throw FfsXmlError
+ }
+ catch (const xmlAccess::FfsXmlError& e)
+ {
+ wxMessageBox(e.toString().c_str(), _("Error"), wxOK | wxICON_ERROR, this);
+ }
+
+ try //save "LastRun.ffs_gui"
+ {
+ xmlAccess::writeConfig(getConfig(), toZ(lastRunConfigName())); //throw FfsXmlError
+ }
+ //don't annoy users on read-only drives: it's enough to show a single error message when saving global config
+ catch (const xmlAccess::FfsXmlError&) {}
+
+ //important! event source wxTheApp is NOT dependent on this instance -> disconnect!
+ wxTheApp->Disconnect(wxEVT_KEY_DOWN, wxKeyEventHandler(MainDialog::OnGlobalKeyEvent), nullptr, this);
+ wxTheApp->Disconnect(wxEVT_CHAR_HOOK, wxKeyEventHandler(MainDialog::OnGlobalKeyEvent), nullptr, this);
+
+ auiMgr.UnInit();
+
+ //no need for wxEventHandler::Disconnect() here; event sources are components of this window and are destroyed, too
+}
+
+//-------------------------------------------------------------------------------------------------------------------------------------
+
+void MainDialog::onQueryEndSession()
+{
+ try { xmlAccess::writeConfig(getGlobalCfgBeforeExit()); }
+ catch (const xmlAccess::FfsXmlError&) {} //we try our best do to something useful in this extreme situation - no reason to notify or even log errors here!
+
+ try { xmlAccess::writeConfig(getConfig(), toZ(lastRunConfigName())); }
+ catch (const xmlAccess::FfsXmlError&) {}
+}
+
void MainDialog::setGlobalCfgOnInit(const xmlAccess::XmlGlobalSettings& globalSettings)
{
globalCfg = globalSettings;
- setLanguage(globalSettings.programLanguage);
+ //caveat set/get language asymmmetry! setLanguage(globalSettings.programLanguage); //throw FileError
+ //we need to set langugabe before creating this class!
//set dialog size and position: test ALL parameters at once, since width/height are invalid if the window is minimized (eg x,y == -32000; height = 28, width = 160)
//note: negative values for x and y are possible when using multiple monitors!
@@ -912,14 +947,13 @@ void MainDialog::setManualFilter(const std::vector<FileSystemObject*>& selection
namespace
{
-//fast replacement for wxString modelling exponential growth
-typedef Zbase<wchar_t> zxString; //for use with UI texts
+//perf: wxString doesn't model exponential growth and so is unusable for large data sets
+typedef Zbase<wchar_t> zxString; //guaranteed exponential growth
}
-
void MainDialog::copySelectionToClipboard()
{
- zxString clipboardString; //perf: wxString doesn't model exponential growth and so is out
+ zxString clipboardString;
auto addSelection = [&](const Grid& grid)
{
@@ -2145,9 +2179,8 @@ void MainDialog::OnContextSetLayout(wxMouseEvent& event)
menu.addItem(_("Default view"), [&]
{
- auiMgr.LoadPerspective(defaultPerspective);
-
m_splitterMain->setSashOffset(0);
+ auiMgr.LoadPerspective(defaultPerspective);
updateGuiForFolderPair();
});
//----------------------------------------------------------------------------------------
@@ -2186,7 +2219,7 @@ void MainDialog::OnCompSettingsContext(wxMouseEvent& event)
auto setVariant = [&](CompareVariant var)
{
currentCfg.mainCfg.cmpConfig.compareVar = var;
- applyCompareConfig();
+ applyCompareConfig(true); //true: switchMiddleGrid
};
auto currentVar = getConfig().mainCfg.cmpConfig.compareVar;
@@ -2226,7 +2259,7 @@ void MainDialog::onNaviPanelFilesDropped(FileDropEvent& event)
}
-void MainDialog::OnDirSelected(wxCommandEvent& event)
+void MainDialog::onDirSelected(wxCommandEvent& event)
{
//left and right directory text-control and dirpicker are synchronized by MainFolderDragDrop automatically
clearGrid(); //disable the sync button
@@ -2234,6 +2267,13 @@ void MainDialog::OnDirSelected(wxCommandEvent& event)
}
+void MainDialog::onDirManualCorrection(wxCommandEvent& event)
+{
+ updateUnsavedCfgStatus();
+ event.Skip();
+}
+
+
wxString getFormattedHistoryElement(const wxString& filename)
{
wxString output = afterLast(filename, utfCvrtTo<wxString>(FILE_NAME_SEPARATOR));
@@ -2317,6 +2357,41 @@ void MainDialog::addFileToCfgHistory(const std::vector<wxString>& filenames)
}
+void MainDialog::updateUnsavedCfgStatus()
+{
+ const bool haveUnsavedCfg = lastConfigurationSaved != getConfig();
+ const bool singleCfgLoaded = activeConfigFiles.size() == 1 && activeConfigFiles[0] != lastRunConfigName();
+
+ //update save config button
+ const bool allowSave = !singleCfgLoaded || haveUnsavedCfg;
+
+ auto makeBrightGrey = [](const wxBitmap& bmp) -> wxBitmap
+ {
+ wxImage img = bmp.ConvertToImage().ConvertToGreyscale(1.0/3, 1.0/3, 1.0/3); //treat all channels equally!
+ brighten(img, 80);
+ return img;
+ };
+ //setImage(*m_bpButtonSave, greyScale(GlobalResources::getImage(L"save")));
+
+ setImage(*m_bpButtonSave, allowSave ? GlobalResources::getImage(L"save") : makeBrightGrey(GlobalResources::getImage(L"save")));
+ m_bpButtonSave->Enable(allowSave);
+
+ m_menuItemSave->Enable(allowSave); //bitmap is automatically greyscaled on Win7 (introducing a crappy looking shift), but not on XP
+
+ //set main dialog title
+ wxString title;
+ if (haveUnsavedCfg)
+ title += L'*';
+
+ if (singleCfgLoaded)
+ title += activeConfigFiles[0];
+ else
+ title += L"FreeFileSync - " + _("Folder Comparison and Synchronization");
+
+ SetTitle(title);
+}
+
+
void MainDialog::OnConfigSave(wxCommandEvent& event)
{
//if we work on a single named configuration document: save directly if changed
@@ -2424,8 +2499,10 @@ bool MainDialog::saveOldConfig() //return false on user abort
}
}
- //discard current config selection, this ensures next app start will load <last session> instead of the original non-modified config selection
- setLastUsedConfig(std::vector<wxString>(), getConfig());
+ //discard current reference file(s), this ensures next app start will load <last session> instead of the original non-modified config selection
+ setLastUsedConfig(std::vector<wxString>(), lastConfigurationSaved);
+ //this seems to make theoretical sense also: the job of this function is to make sure current (volatile) config and reference file name are in sync
+ // => if user does not save cfg, it is not attached to a physical file names anymore!
}
return true;
}
@@ -2456,10 +2533,7 @@ void MainDialog::OnConfigNew(wxCommandEvent& event)
if (!saveOldConfig()) //notify user about changed settings
return;
- xmlAccess::XmlGuiConfig emptyCfg;
- setConfig(emptyCfg);
-
- setLastUsedConfig(std::vector<wxString>(), emptyCfg);
+ setConfig(xmlAccess::XmlGuiConfig(), std::vector<wxString>());
}
@@ -2508,26 +2582,22 @@ void MainDialog::loadConfiguration(const std::vector<wxString>& filenames)
try
{
//allow reading batch configurations also
- xmlAccess::convertConfig(toZ(filenames), newGuiCfg); //throw FfsXmlError
+ xmlAccess::mergeConfigs(toZ(filenames), newGuiCfg); //throw FfsXmlError
- setLastUsedConfig(filenames, newGuiCfg);
+ setConfig(newGuiCfg, filenames);
//flashStatusInformation(_("Configuration loaded!")); -> irrelvant!?
}
catch (const xmlAccess::FfsXmlError& error)
{
if (error.getSeverity() == xmlAccess::FfsXmlError::WARNING)
{
- setLastUsedConfig(filenames, xmlAccess::XmlGuiConfig()); //simulate changed config on parsing errors
wxMessageBox(error.toString(), _("Warning"), wxOK | wxICON_WARNING, this);
+ setConfig(newGuiCfg, filenames);
+ setLastUsedConfig(filenames, xmlAccess::XmlGuiConfig()); //simulate changed config due to parsing errors
}
else
- {
wxMessageBox(error.toString(), _("Error"), wxOK | wxICON_ERROR, this);
- return;
- }
}
-
- setConfig(newGuiCfg);
}
@@ -2639,18 +2709,12 @@ void MainDialog::setLastUsedConfig(const std::vector<wxString>& filenames,
addFileToCfgHistory(activeConfigFiles); //put filename on list of last used config files
- //set title
- if (activeConfigFiles.size() == 1 && activeConfigFiles[0] != lastRunConfigName())
- SetTitle(activeConfigFiles[0]);
- else
- SetTitle(L"FreeFileSync - " + _("Folder Comparison and Synchronization"));
+ updateUnsavedCfgStatus();
}
-void MainDialog::setConfig(const xmlAccess::XmlGuiConfig& newGuiCfg)
+void MainDialog::setConfig(const xmlAccess::XmlGuiConfig& newGuiCfg, const std::vector<wxString>& referenceFiles)
{
- clearGrid();
-
currentCfg = newGuiCfg;
//evaluate new settings...
@@ -2689,6 +2753,10 @@ void MainDialog::setConfig(const xmlAccess::XmlGuiConfig& newGuiCfg)
//update sync variant name
m_staticTextSyncVariant->SetLabel(currentCfg.mainCfg.getSyncVariantName());
m_panelTopButtons->Layout(); //adapt layout for variant text
+
+ clearGrid(); //+ update GUI
+
+ setLastUsedConfig(referenceFiles, newGuiCfg);
}
@@ -3022,15 +3090,11 @@ void MainDialog::updateFilterButtons()
m_bpButtonFilter->SetToolTip(_("No filter selected"));
}
- //update main local filter
+ //update local filter buttons
firstFolderPair->refreshButtons();
- //update folder pairs
std::for_each(additionalFolderPairs.begin(), additionalFolderPairs.end(),
- [&](DirectoryPair* dirPair)
- {
- dirPair->refreshButtons();
- });
+ [&](DirectoryPair* dirPair) { dirPair->refreshButtons(); });
}
@@ -3051,7 +3115,7 @@ void MainDialog::OnCompare(wxCommandEvent& event)
m_gridMainR->Scroll(scrollPosX, scrollPosY); //restore
m_gridMainC->Scroll(-1, scrollPosY); ) //
- clearGrid(false); //avoid memory peak by clearing old data
+ clearGrid(); //avoid memory peak by clearing old data
try
{
@@ -3092,8 +3156,6 @@ void MainDialog::OnCompare(wxCommandEvent& event)
treeDataView->setData(folderCmp); //
updateGui();
- updateSyncEnabledStatus(); //enable the sync button
-
// if (m_buttonStartSync->IsShownOnScreen()) m_buttonStartSync->SetFocus();
gridview::clearSelection(*m_gridMainL, *m_gridMainC, *m_gridMainR);
@@ -3121,20 +3183,36 @@ void MainDialog::updateGui()
//update sync preview statistics
updateStatistics();
+ updateUnsavedCfgStatus();
+
+ //update sync and comparison variant names
+ m_staticTextSyncVariant->SetLabel(getConfig().mainCfg.getSyncVariantName());
+ m_staticTextCmpVariant ->SetLabel(getConfig().mainCfg.getCompVariantName());
+ m_panelTopButtons->Layout();
+
+ //update sync button enabled/disabled status
+ if (!folderCmp.empty())
+ {
+ m_buttonStartSync->SetForegroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_BTNTEXT));
+ m_buttonStartSync->setBitmapFront(GlobalResources::getImage(L"sync"), 5);
+ }
+ else
+ {
+ m_buttonStartSync->SetForegroundColour(wxColor(128, 128, 128)); //Some colors seem to have problems with 16-bit desktop color, well this one hasn't!
+ m_buttonStartSync->setBitmapFront(greyScale(GlobalResources::getImage(L"sync")), 5);
+ }
+
auiMgr.Update(); //fix small display distortion, if view filter panel is empty
}
-void MainDialog::clearGrid(bool refreshGrid)
+void MainDialog::clearGrid()
{
folderCmp.clear();
gridDataView->setData(folderCmp);
treeDataView->setData(folderCmp);
- updateSyncEnabledStatus();
-
- if (refreshGrid)
- updateGui();
+ updateGui();
}
@@ -3189,17 +3267,12 @@ void MainDialog::OnSyncSettings(wxCommandEvent& event)
}
-void MainDialog::applyCompareConfig(bool changePreviewStatus)
+void MainDialog::applyCompareConfig(bool switchMiddleGrid)
{
- //update compare variant name
- m_staticTextCmpVariant->SetLabel(getConfig().mainCfg.getCompVariantName());
- m_panelTopButtons->Layout(); //adapt layout for variant text
-
- if (changePreviewStatus)
- {
- clearGrid();
+ clearGrid(); //+ GUI update
- //convenience: change sync view
+ //convenience: change sync view
+ if (switchMiddleGrid)
switch (currentCfg.mainCfg.cmpConfig.compareVar)
{
case CMP_BY_TIME_SIZE:
@@ -3209,10 +3282,6 @@ void MainDialog::applyCompareConfig(bool changePreviewStatus)
showSyncAction(false);
break;
}
-
- if (m_buttonCompare->IsShownOnScreen())
- m_buttonCompare->SetFocus();
- }
}
@@ -3230,7 +3299,7 @@ void MainDialog::OnCmpSettings(wxCommandEvent& event)
{
currentCfg.mainCfg.cmpConfig = cmpConfigNew;
- applyCompareConfig();
+ applyCompareConfig(true); //true: switchMiddleGrid
}
}
@@ -3248,8 +3317,8 @@ void MainDialog::OnStartSync(wxCommandEvent& event)
return;
}
- //show sync preview screen
- if (globalCfg.optDialogs.showSummaryBeforeSync)
+ //show sync preview/confirmation dialog
+ if (globalCfg.optDialogs.confirmSyncStart)
{
bool dontShowAgain = false;
@@ -3259,7 +3328,7 @@ void MainDialog::OnStartSync(wxCommandEvent& event)
dontShowAgain) != ReturnSmallDlg::BUTTON_OKAY)
return;
- globalCfg.optDialogs.showSummaryBeforeSync = !dontShowAgain;
+ globalCfg.optDialogs.confirmSyncStart = !dontShowAgain;
}
wxBusyCursor dummy; //show hourglass cursor
@@ -3275,7 +3344,7 @@ void MainDialog::OnStartSync(wxCommandEvent& event)
const auto& guiCfg = getConfig();
//class handling status updates and error messages
- SyncStatusHandler statusHandler(this,
+ SyncStatusHandler statusHandler(this, //throw GuiAbortProcess
currentCfg.handleError,
xmlAccess::extractJobName(activeFileName),
guiCfg.mainCfg.onCompletion,
@@ -3296,7 +3365,8 @@ void MainDialog::OnStartSync(wxCommandEvent& event)
//START SYNCHRONIZATION
const std::vector<zen::FolderPairSyncCfg> syncProcessCfg = zen::extractSyncCfg(guiCfg.mainCfg);
if (syncProcessCfg.size() != folderCmp.size())
- throw std::logic_error("Programming Error: Contract violation!"); //should never happen: sync button is deactivated if they are not in sync
+ throw std::logic_error("Programming Error: Contract violation! " + std::string(__FILE__) + ":" + numberTo<std::string>(__LINE__));
+ //should never happen: sync button is deactivated if they are not in sync
synchronize(localTime(),
globalCfg.optDialogs,
@@ -3610,14 +3680,10 @@ void MainDialog::applyFilterConfig()
void MainDialog::applySyncConfig()
{
- //update sync variant name
- m_staticTextSyncVariant->SetLabel(getConfig().mainCfg.getSyncVariantName());
- m_panelTopButtons->Layout(); //adapt layout for variant text
-
zen::redetermineSyncDirection(getConfig().mainCfg, folderCmp,
[&](const std::wstring& warning)
{
- bool& warningActive = globalCfg.optDialogs.warningSyncDatabase;
+ bool& warningActive = globalCfg.optDialogs.warningDatabaseError;
if (warningActive)
{
bool dontWarnAgain = false;
@@ -3704,7 +3770,8 @@ void MainDialog::updateGuiForFolderPair()
m_bpButtonAltSyncCfg ->Show(showLocalCfgFirstPair);
m_bpButtonLocalFilter->Show(showLocalCfgFirstPair);
setImage(*m_bpButtonSwapSides, GlobalResources::getImage(showLocalCfgFirstPair ? L"swapSlim" : L"swap"));
- m_panelTopMiddle->Layout();
+ m_panelTopMiddle->Layout(); //both required to update button size for calculations below!!!
+ m_panelDirectoryPairs->Layout(); // -> updates size of stretched m_panelTopLeft!
int addPairMinimalHeight = 0;
int addPairOptimalHeight = 0;
@@ -3789,10 +3856,7 @@ void MainDialog::addFolderPair(const std::vector<FolderPairEnh>& newPairs, bool
iter->altCmpConfig,
iter->altSyncConfig,
iter->localFilter);
-
- clearGrid();
- applySyncConfig(); //mainly to update sync dir description text
- applyCompareConfig(false); //false: do not change preview status
+ clearGrid(); //+ GUI update
}
@@ -3824,11 +3888,7 @@ void MainDialog::removeAddFolderPair(size_t pos)
updateGuiForFolderPair();
- //------------------------------------------------------------------
- //disable the sync button
- clearGrid();
- applySyncConfig(); //mainly to update sync dir description text
- applyCompareConfig(false); //false: do not change preview status
+ clearGrid(); //+ GUI update
}
@@ -4075,12 +4135,11 @@ void MainDialog::OnMenuQuit(wxCommandEvent& event)
void MainDialog::switchProgramLanguage(int langID)
{
//create new dialog with respect to new language
- zen::setLanguage(langID); //language is a global attribute
-
- //create new main window and delete old one
- MainDialog* frame = new MainDialog(activeConfigFiles, getConfig(), getGlobalCfgBeforeExit(), false);
- frame->Show();
+ xmlAccess::XmlGlobalSettings newGlobalCfg = getGlobalCfgBeforeExit();
+ newGlobalCfg.programLanguage = langID;
+ //show new dialog, then delete old one
+ MainDialog::create(getConfig(), activeConfigFiles, newGlobalCfg, false);
Destroy();
}
@@ -4105,18 +4164,3 @@ void MainDialog::showSyncAction(bool value)
updateGui();
}
-
-void MainDialog::updateSyncEnabledStatus()
-{
- if (!folderCmp.empty())
- {
- m_buttonStartSync->SetForegroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_BTNTEXT));
- m_buttonStartSync->setBitmapFront(GlobalResources::getImage(L"sync"));
- }
- else
- {
- m_buttonStartSync->SetForegroundColour(wxColor(128, 128, 128)); //Some colors seem to have problems with 16-bit desktop color, well this one hasn't!
- m_buttonStartSync->setBitmapFront(GlobalResources::getImage(L"syncDisabled")); //looks better than greyscaling "sync" bmp
- }
-}
-
diff --git a/ui/main_dlg.h b/ui/main_dlg.h
index d6965375..47630670 100644
--- a/ui/main_dlg.h
+++ b/ui/main_dlg.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef MAINDIALOG_H
@@ -19,7 +19,7 @@
#include "tree_view.h"
#include <wx+/file_drop.h>
-class FolderHistory;
+//class FolderHistory;
class DirectoryPair;
class CompareStatus;
class DirectoryPairFirst;
@@ -28,15 +28,17 @@ class DirectoryPairFirst;
class MainDialog : public MainDialogGenerated
{
public:
- MainDialog(const std::vector<wxString>& cfgFileNames, //default behavior, application start
- const xmlAccess::XmlGlobalSettings& globalSettings); //take over ownership => save on exit
+ //default behavior, application start
+ static void create(const std::vector<wxString>& cfgFileNames); //cfgFileNames empty: restore last config; non-empty load/merge given set of config files
- MainDialog(const std::vector<wxString>& referenceFiles,
- const xmlAccess::XmlGuiConfig& guiCfg,
- const xmlAccess::XmlGlobalSettings& globalSettings, //take over ownership => save on exit
- bool startComparison);
+ //load dynamically assembled config
+ static void create(const xmlAccess::XmlGuiConfig& guiCfg, bool startComparison);
- ~MainDialog();
+ //when switching language or switching from batch run to GUI on warnings
+ static void create(const xmlAccess::XmlGuiConfig& guiCfg,
+ const std::vector<wxString>& referenceFiles,
+ const xmlAccess::XmlGlobalSettings& globalSettings, //take over ownership => save on exit
+ bool startComparison);
void disableAllElements(bool enableAbort); //dis-/enables all elements (except abort button) that might receive user input
void enableAllElements(); //during long-running processes: comparison, deletion
@@ -44,6 +46,17 @@ public:
void onQueryEndSession(); //last chance to do something useful before killing the application!
private:
+ static void create_impl(const xmlAccess::XmlGuiConfig& guiCfg,
+ const std::vector<wxString>& referenceFiles,
+ const xmlAccess::XmlGlobalSettings& globalSettings,
+ bool startComparison);
+
+ MainDialog(const xmlAccess::XmlGuiConfig& guiCfg,
+ const std::vector<wxString>& referenceFiles,
+ const xmlAccess::XmlGlobalSettings& globalSettings, //take over ownership => save on exit
+ bool startComparison);
+ ~MainDialog();
+
friend class CompareStatusHandler;
friend class SyncStatusHandler;
friend class ManualDeletionHandler;
@@ -54,18 +67,12 @@ private:
friend class FolderPairCallback;
friend class PanelMoveWindow;
- MainDialog();
-
- void init(const xmlAccess::XmlGuiConfig& guiCfg,
- const xmlAccess::XmlGlobalSettings& globalSettings,
- bool startComparison);
-
//configuration load/save
void setLastUsedConfig(const wxString& filename, const xmlAccess::XmlGuiConfig& guiConfig);
void setLastUsedConfig(const std::vector<wxString>& filenames, const xmlAccess::XmlGuiConfig& guiConfig);
xmlAccess::XmlGuiConfig getConfig() const;
- void setConfig(const xmlAccess::XmlGuiConfig& newGuiCfg);
+ void setConfig(const xmlAccess::XmlGuiConfig& newGuiCfg, const std::vector<wxString>& referenceFiles);
void setGlobalCfgOnInit(const xmlAccess::XmlGlobalSettings& globalSettings); //messes with Maximize(), window sizes, so call just once!
xmlAccess::XmlGlobalSettings getGlobalCfgBeforeExit(); //destructive "get" thanks to "Iconize(false), Maximize(false)"
@@ -94,8 +101,10 @@ private:
void updateGuiForFolderPair(); //helper method: add usability by showing/hiding buttons related to folder pairs
//main method for putting gridDataView on UI: updates data respecting current view settings
- void updateGui();
- void updateGridViewData();
+ void updateGui(); //kitchen-sink update
+ void updateGridViewData(); //
+ void updateStatistics(); // more fine-grained updaters
+ void updateUnsavedCfgStatus(); //
//context menu functions
std::vector<zen::FileSystemObject*> getGridSelection(bool fromLeft = true, bool fromRight = true) const;
@@ -130,7 +139,7 @@ private:
void OnSyncSettingsContext(wxMouseEvent& event);
void OnGlobalFilterContext(wxCommandEvent& event);
- void applyCompareConfig(bool changePreviewStatus = true);
+ void applyCompareConfig(bool switchMiddleGrid = false);
//context menu handler methods
void onMainGridContextL(zen::GridClickEvent& event);
@@ -144,7 +153,8 @@ private:
void onNaviPanelFilesDropped(zen::FileDropEvent& event);
- void OnDirSelected(wxCommandEvent& event);
+ void onDirSelected(wxCommandEvent& event);
+ void onDirManualCorrection(wxCommandEvent& event);
void onCheckRows (zen::CheckRowsEvent& event);
void onSetSyncDirection(zen::SyncDirectionEvent& event);
@@ -208,10 +218,6 @@ private:
void excludeShortname(const zen::FileSystemObject& fsObj);
void excludeItems(const std::vector<zen::FileSystemObject*>& selection);
- void updateStatistics();
-
- void updateSyncEnabledStatus();
-
void OnAddFolderPair (wxCommandEvent& event);
void OnRemoveFolderPair (wxCommandEvent& event);
void OnRemoveTopFolderPair(wxCommandEvent& event);
@@ -248,10 +254,10 @@ private:
//the prime data structure of this tool *bling*:
zen::FolderComparison folderCmp; //optional!: sync button not available if empty
- void clearGrid(bool refreshGrid = true);
+ void clearGrid();
//-------------------------------------
- //functional configuration
+ //program configuration
xmlAccess::XmlGuiConfig currentCfg;
//folder pairs:
@@ -259,7 +265,6 @@ private:
std::vector<DirectoryPair*> additionalFolderPairs; //additional pairs to the first pair
//-------------------------------------
-
//***********************************************
//status information
wxLongLong lastStatusChange;
diff --git a/ui/msg_popup.cpp b/ui/msg_popup.cpp
index bdb51701..e200be1f 100644
--- a/ui/msg_popup.cpp
+++ b/ui/msg_popup.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "msg_popup.h"
@@ -46,7 +46,7 @@ ErrorDlg::ErrorDlg(wxWindow* parent, int activeButtons, const wxString& messageT
#endif
SetTitle(!caption.empty() ? caption : _("Error"));
- m_bitmapMsgType->SetBitmap(GlobalResources::getImage(L"error"));
+ m_bitmapMsgType->SetBitmap(GlobalResources::getImage(L"msg_error"));
m_textCtrlMessage->SetValue(messageText);
checkBoxIgnoreErrors.SetLabel(_("Ignore further errors"));
buttonIgnore.SetLabel(_("&Ignore"));
@@ -148,7 +148,7 @@ WarningDlg::WarningDlg(wxWindow* parent, int activeButtons, const wxString& mes
#endif
SetTitle(_("Warning"));
- m_bitmapMsgType->SetBitmap(GlobalResources::getImage(L"warning"));
+ m_bitmapMsgType->SetBitmap(GlobalResources::getImage(L"msg_warning"));
m_textCtrlMessage->SetValue(messageText);
checkBoxDontShowAgain.SetLabel(_("Don't show this dialog again"));
buttonIgnore.SetLabel(_("&Ignore"));
@@ -237,7 +237,7 @@ QuestionDlg::QuestionDlg(wxWindow* parent,
#endif
SetTitle(!caption.empty()? caption : _("Question"));
- m_bitmapMsgType->SetBitmap(GlobalResources::getImage(L"question"));
+ m_bitmapMsgType->SetBitmap(GlobalResources::getImage(L"msg_question"));
m_textCtrlMessage->SetValue(messageText);
buttonYes.SetLabel(!labelYes.empty() ? labelYes : _("&Yes"));
buttonNo .SetLabel(!labelNo .empty() ? labelNo : _("&No"));
diff --git a/ui/msg_popup.h b/ui/msg_popup.h
index fd68c3f4..c5557480 100644
--- a/ui/msg_popup.h
+++ b/ui/msg_popup.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef MESSAGEPOPUP_H_INCLUDED
diff --git a/ui/progress_indicator.cpp b/ui/progress_indicator.cpp
index 2583ecb8..096d7413 100644
--- a/ui/progress_indicator.cpp
+++ b/ui/progress_indicator.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "progress_indicator.h"
@@ -10,9 +10,9 @@
#include <wx/stopwatch.h>
#include <wx/wupdlock.h>
#include <zen/basic_math.h>
+#include <zen/format_unit.h>
#include <wx+/mouse_move_dlg.h>
#include <wx+/toggle_button.h>
-#include <wx+/format_unit.h>
#include <wx+/image_tools.h>
#include <wx+/graph.h>
#include <wx+/no_flicker.h>
@@ -296,9 +296,9 @@ public:
const int warningCount = log_.getItemCount(TYPE_WARNING);
const int infoCount = log_.getItemCount(TYPE_INFO);
- m_bpButtonErrors ->init(buttonPressed ("error" ), buttonReleased("error" ), _("Error" ) + wxString::Format(L" (%d)", errorCount ));
- m_bpButtonWarnings->init(buttonPressed ("warning"), buttonReleased("warning"), _("Warning") + wxString::Format(L" (%d)", warningCount));
- m_bpButtonInfo ->init(buttonPressed ("info" ), buttonReleased("info" ), _("Info" ) + wxString::Format(L" (%d)", infoCount ));
+ m_bpButtonErrors ->init(buttonPressed ("msg_error" ), buttonReleased("msg_error" ), _("Error" ) + wxString::Format(L" (%d)", errorCount ));
+ m_bpButtonWarnings->init(buttonPressed ("msg_warning"), buttonReleased("msg_warning"), _("Warning") + wxString::Format(L" (%d)", warningCount));
+ m_bpButtonInfo ->init(buttonPressed ("msg_info" ), buttonReleased("msg_info" ), _("Info" ) + wxString::Format(L" (%d)", infoCount ));
m_bpButtonErrors ->setActive(true);
m_bpButtonWarnings->setActive(true);
@@ -636,7 +636,7 @@ SyncStatus::SyncStatusImpl::SyncStatusImpl(AbortCallback& abortCb,
mainDialog->disableAllElements(false); //disable all child elements
}
- m_animationControl1->SetAnimation(GlobalResources::instance().animationSync);
+ m_animationControl1->SetAnimation(GlobalResources::instance().aniSync);
m_animationControl1->Play();
SetIcon(GlobalResources::instance().programIcon);
diff --git a/ui/progress_indicator.h b/ui/progress_indicator.h
index 5df04fd4..5628694f 100644
--- a/ui/progress_indicator.h
+++ b/ui/progress_indicator.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef PROGRESSINDICATOR_H_INCLUDED
diff --git a/ui/search.cpp b/ui/search.cpp
index 46138875..fd3a11c5 100644
--- a/ui/search.cpp
+++ b/ui/search.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "search.h"
diff --git a/ui/search.h b/ui/search.h
index eee4af4d..dd92d5b6 100644
--- a/ui/search.h
+++ b/ui/search.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef SEARCH_H_INCLUDED
diff --git a/ui/small_dlgs.cpp b/ui/small_dlgs.cpp
index a1aca6dd..4b070dce 100644
--- a/ui/small_dlgs.cpp
+++ b/ui/small_dlgs.cpp
@@ -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.html *
-// * Copyright (C) ZenJu (zenju AT gmx DOT de) - All Rights Reserved *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "gui_generated.h"
#include "small_dlgs.h"
#include "msg_popup.h"
+#include <zen/format_unit.h>
#include "../lib/resources.h"
#include "../algorithm.h"
-#include <wx+/format_unit.h>
#include <wx+/choice_enum.h>
#include "../synchronization.h"
#include "custom_grid.h"
@@ -45,8 +45,10 @@ AboutDlg::AboutDlg(wxWindow* parent) : AboutDlgGenerated(parent)
m_bitmap9 ->SetBitmap(GlobalResources::getImage(L"website"));
m_bitmap10->SetBitmap(GlobalResources::getImage(L"email"));
m_bitmap13->SetBitmap(GlobalResources::getImage(L"gpl"));
- //m_bitmapTransl->SetBitmap(GlobalResources::getImage(wxT("translation")));
- m_bitmapPaypal->SetBitmap(GlobalResources::getImage(L"paypal"));
+ //m_bitmapSmiley->SetBitmap(GlobalResources::getImage(L"smiley"));
+
+ m_animCtrlWink->SetAnimation(GlobalResources::instance().aniWink);
+ m_animCtrlWink->Play();
//create language credits
for (auto iter = ExistingTranslations::get().begin(); iter != ExistingTranslations::get().end(); ++iter)
@@ -236,13 +238,13 @@ void FilterDlg::updateGui()
m_bitmapInclude->SetBitmap(
!NameFilter::isNull(activeCfg.includeFilter, FilterConfig().excludeFilter) ?
- GlobalResources::getImage(L"include") :
- greyScale(GlobalResources::getImage(L"include")));
+ GlobalResources::getImage(L"filter_include") :
+ greyScale(GlobalResources::getImage(L"filter_include")));
m_bitmapExclude->SetBitmap(
!NameFilter::isNull(FilterConfig().includeFilter, activeCfg.excludeFilter) ?
- GlobalResources::getImage(L"exclude") :
- greyScale(GlobalResources::getImage(L"exclude")));
+ GlobalResources::getImage(L"filter_exclude") :
+ greyScale(GlobalResources::getImage(L"filter_exclude")));
m_bitmapFilterDate->SetBitmap(
activeCfg.unitTimeSpan != UTIME_NONE ?
@@ -385,10 +387,10 @@ void DeleteDialog::updateGui()
{
wxWindowUpdateLocker dummy(m_panelHeader); //avoid display distortion
- const std::pair<wxString, int> delInfo = zen::deleteFromGridAndHDPreview(
- rowsToDeleteOnLeft,
- rowsToDeleteOnRight,
- m_checkBoxDeleteBothSides->GetValue());
+ const std::pair<Zstring, int> delInfo = zen::deleteFromGridAndHDPreview(
+ rowsToDeleteOnLeft,
+ rowsToDeleteOnRight,
+ m_checkBoxDeleteBothSides->GetValue());
wxString header;
if (m_checkBoxUseRecycler->GetValue())
{
@@ -405,8 +407,8 @@ void DeleteDialog::updateGui()
replace(header, L"%x", toGuiString(delInfo.second));
m_staticTextHeader->SetLabel(header);
- const wxString& filesToDelete = delInfo.first;
- m_textCtrlFileList->ChangeValue(filesToDelete);
+ const wxString& fileList = utfCvrtTo<wxString>(delInfo.first);
+ m_textCtrlFileList->ChangeValue(fileList);
Fit(); //child-element widths have changed: image was set
m_panelHeader->Layout();
@@ -477,7 +479,7 @@ SyncPreviewDlg::SyncPreviewDlg(wxWindow* parent,
new zen::MouseMoveWindow(*this); //allow moving main dialog by clicking (nearly) anywhere...; ownership passed to "this"
#endif
- m_buttonStartSync->setBitmapFront(GlobalResources::getImage(L"startSync"));
+ m_buttonStartSync->setBitmapFront(GlobalResources::getImage(L"sync"), 5);
m_staticTextVariant->SetLabel(variantName);
m_checkBoxDontShowAgain->SetValue(dontShowAgain);
@@ -675,10 +677,10 @@ GlobalSettingsDlg::GlobalSettingsDlg(wxWindow* parent, xmlAccess::XmlGlobalSetti
new zen::MouseMoveWindow(*this); //allow moving dialog by clicking (nearly) anywhere...; ownership passed to "this"
#endif
- m_bitmapSettings ->SetBitmap (GlobalResources::getImage(wxT("settings")));
- m_buttonResetDialogs->setBitmapFront(GlobalResources::getImage(wxT("warningSmall")), 5);
- m_bpButtonAddRow ->SetBitmapLabel(GlobalResources::getImage(wxT("addFolderPair")));
- m_bpButtonRemoveRow ->SetBitmapLabel(GlobalResources::getImage(wxT("removeFolderPair")));
+ m_bitmapSettings ->SetBitmap (GlobalResources::getImage(L"settings"));
+ m_buttonResetDialogs->setBitmapFront(GlobalResources::getImage(L"warningSmall"), 5);
+ m_bpButtonAddRow ->SetBitmapLabel(GlobalResources::getImage(L"item_add"));
+ m_bpButtonRemoveRow ->SetBitmapLabel(GlobalResources::getImage(L"item_delete"));
m_checkBoxCopyLocked ->SetValue(globalSettings.copyLockedFiles);
m_checkBoxTransCopy ->SetValue(globalSettings.transactionalFileCopy);
diff --git a/ui/small_dlgs.h b/ui/small_dlgs.h
index b375aff2..ed191bae 100644
--- a/ui/small_dlgs.h
+++ b/ui/small_dlgs.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef SMALLDIALOGS_H_INCLUDED
diff --git a/ui/sorting.h b/ui/sorting.h
index 31146037..afb4d999 100644
--- a/ui/sorting.h
+++ b/ui/sorting.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef SORTING_H_INCLUDED
diff --git a/ui/switch_to_gui.h b/ui/switch_to_gui.h
index e4a14f8f..a12c7b03 100644
--- a/ui/switch_to_gui.h
+++ b/ui/switch_to_gui.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef SWITCHTOGUI_H_INCLUDED
@@ -27,9 +27,7 @@ public:
void execute() const
{
-
- MainDialog* frame = new MainDialog(referenceFiles, guiCfg, globalSettings_, true); //toplevel window
- frame->Show();
+ MainDialog::create(guiCfg, referenceFiles, globalSettings_, true); //new toplevel window
}
private:
diff --git a/ui/sync_cfg.cpp b/ui/sync_cfg.cpp
index d8d238b3..d159503d 100644
--- a/ui/sync_cfg.cpp
+++ b/ui/sync_cfg.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "sync_cfg.h"
diff --git a/ui/sync_cfg.h b/ui/sync_cfg.h
index 350dd71e..ca9010d8 100644
--- a/ui/sync_cfg.h
+++ b/ui/sync_cfg.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef SYNCCONFIG_H_INCLUDED
diff --git a/ui/taskbar.cpp b/ui/taskbar.cpp
index 864db24d..311a7bee 100644
--- a/ui/taskbar.cpp
+++ b/ui/taskbar.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
//
#include "taskbar.h"
diff --git a/ui/taskbar.h b/ui/taskbar.h
index 80900af4..8fa48392 100644
--- a/ui/taskbar.h
+++ b/ui/taskbar.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef TASKBARPROGRESS_H_INCLUDED
diff --git a/ui/tray_icon.cpp b/ui/tray_icon.cpp
index 95df6bb3..e466a15b 100644
--- a/ui/tray_icon.cpp
+++ b/ui/tray_icon.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "tray_icon.h"
diff --git a/ui/tray_icon.h b/ui/tray_icon.h
index 9337a648..5ca94903 100644
--- a/ui/tray_icon.h
+++ b/ui/tray_icon.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef TRAYICON_H_INCLUDED
diff --git a/ui/tree_view.cpp b/ui/tree_view.cpp
index 578690d9..a3a6b2aa 100644
--- a/ui/tree_view.cpp
+++ b/ui/tree_view.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include <set>
@@ -11,7 +11,7 @@
#include <zen/i18n.h>
#include <zen/utf.h>
#include <zen/stl_tools.h>
-#include <wx+/format_unit.h>
+#include <zen/format_unit.h>
#include <wx+/rtl.h>
#include <wx+/context_menu.h>
#include "../lib/icon_buffer.h"
diff --git a/ui/tree_view.h b/ui/tree_view.h
index 42970342..af269d53 100644
--- a/ui/tree_view.h
+++ b/ui/tree_view.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef TREE_H_INCLUDED_841703190201835280256673425
diff --git a/ui/triple_splitter.cpp b/ui/triple_splitter.cpp
index bbbc684a..8132fd13 100644
--- a/ui/triple_splitter.cpp
+++ b/ui/triple_splitter.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "triple_splitter.h"
diff --git a/ui/triple_splitter.h b/ui/triple_splitter.h
index 5fd189a5..5b389e5b 100644
--- a/ui/triple_splitter.h
+++ b/ui/triple_splitter.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef TRIPPLE_SPLIT_HEADER_8257804292846842573942534254
diff --git a/ui/wx_form_build_hide_warnings.h b/ui/wx_form_build_hide_warnings.h
index 1b43db2f..1edd5e4b 100644
--- a/ui/wx_form_build_hide_warnings.h
+++ b/ui/wx_form_build_hide_warnings.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef WX_FORM_BUILD_230948324234234
diff --git a/version/version.h b/version/version.h
index 357426ee..47247163 100644
--- a/version/version.h
+++ b/version/version.h
@@ -3,7 +3,7 @@
namespace zen
{
-const wchar_t currentVersion[] = L"5.7"; //internal linkage!
+const wchar_t currentVersion[] = L"5.8"; //internal linkage!
}
#endif
diff --git a/version/version.rc b/version/version.rc
index cadf15c7..2ce4a64f 100644
--- a/version/version.rc
+++ b/version/version.rc
@@ -1,2 +1,2 @@
-#define VER_FREEFILESYNC 5,7,0,0
-#define VER_FREEFILESYNC_STR "5.7\0"
+#define FREEFILESYNC_VER 5,8,0,0
+#define FREEFILESYNC_VER_STR "5.8\0"
diff --git a/wx+/app_main.h b/wx+/app_main.h
index 47331982..a13a122d 100644
--- a/wx+/app_main.h
+++ b/wx+/app_main.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef APPMAIN_H_INCLUDED
diff --git a/wx+/button.cpp b/wx+/button.cpp
index c710c158..8fce99f4 100644
--- a/wx+/button.cpp
+++ b/wx+/button.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "button.h"
diff --git a/wx+/button.h b/wx+/button.h
index 89e376a2..6aba0788 100644
--- a/wx+/button.h
+++ b/wx+/button.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef CUSTOMBUTTON_H_INCLUDED
diff --git a/wx+/choice_enum.h b/wx+/choice_enum.h
index e591a67f..adef88cc 100644
--- a/wx+/choice_enum.h
+++ b/wx+/choice_enum.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef WX_CHOICE_ENUM_H_INCLUDED
diff --git a/wx+/context_menu.h b/wx+/context_menu.h
index a2534291..2557737a 100644
--- a/wx+/context_menu.h
+++ b/wx+/context_menu.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef CONTEXT_HEADER_18047302153418174632141234
diff --git a/wx+/create_pch.cpp b/wx+/create_pch.cpp
index 406ce5b4..ad4cabd9 100644
--- a/wx+/create_pch.cpp
+++ b/wx+/create_pch.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
//dummy file for Visual Studio to compile precompiled header:
diff --git a/wx+/file_drop.h b/wx+/file_drop.h
index 1d905c7a..22a6542c 100644
--- a/wx+/file_drop.h
+++ b/wx+/file_drop.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef FILE_DROP_H_INCLUDED
diff --git a/wx+/graph.cpp b/wx+/graph.cpp
index b69173bb..a50f3c34 100644
--- a/wx+/graph.cpp
+++ b/wx+/graph.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "graph.h"
diff --git a/wx+/graph.h b/wx+/graph.h
index d500dcc0..ddcc1e33 100644
--- a/wx+/graph.h
+++ b/wx+/graph.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef WX_PLOT_HEADER_2344252459
diff --git a/wx+/grid.cpp b/wx+/grid.cpp
index 5f49b9fa..9f94b7f0 100644
--- a/wx+/grid.cpp
+++ b/wx+/grid.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "grid.h"
@@ -17,7 +17,7 @@
#include <zen/string_tools.h>
#include <zen/scope_guard.h>
#include <zen/utf.h>
-#include "format_unit.h"
+#include <zen/format_unit.h>
#include "image_tools.h"
#ifdef FFS_LINUX
diff --git a/wx+/grid.h b/wx+/grid.h
index 448e5486..fd07d2c7 100644
--- a/wx+/grid.h
+++ b/wx+/grid.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef GENERIC_GRID_HEADER_83470213483173
diff --git a/wx+/image_tools.h b/wx+/image_tools.h
index c5011634..9de93c26 100644
--- a/wx+/image_tools.h
+++ b/wx+/image_tools.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef IMAGE_TOOLS_HEADER_45782456427634254
@@ -121,7 +121,10 @@ wxBitmap layOver(const wxBitmap& foreground, const wxBitmap& background)
{
wxMemoryDC dc;
dc.SelectObject(output);
- dc.DrawBitmap(foreground, 0, 0, true);
+
+ const int offsetX = (background.GetWidth () - foreground.GetWidth ()) / 2;
+ const int offsetY = (background.GetHeight() - foreground.GetHeight()) / 2;
+ dc.DrawBitmap(foreground, offsetX, offsetY, true);
dc.SelectObject(wxNullBitmap);
}
return output;
diff --git a/wx+/mouse_move_dlg.cpp b/wx+/mouse_move_dlg.cpp
index 72e464d6..e64e5da1 100644
--- a/wx+/mouse_move_dlg.cpp
+++ b/wx+/mouse_move_dlg.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "mouse_move_dlg.h"
diff --git a/wx+/mouse_move_dlg.h b/wx+/mouse_move_dlg.h
index 29e62cd9..18cd38d6 100644
--- a/wx+/mouse_move_dlg.h
+++ b/wx+/mouse_move_dlg.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef MOUSEMOVEWINDOW_H_INCLUDED
diff --git a/wx+/no_flicker.h b/wx+/no_flicker.h
index d96e0134..fb315de0 100644
--- a/wx+/no_flicker.h
+++ b/wx+/no_flicker.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef NO_FLICKER_HEADER_893421590321532
diff --git a/wx+/pch.h b/wx+/pch.h
index ff014056..b27cc656 100644
--- a/wx+/pch.h
+++ b/wx+/pch.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef FFS_PRECOMPILED_HEADER
diff --git a/wx+/rtl.h b/wx+/rtl.h
index eff05823..f89bb86e 100644
--- a/wx+/rtl.h
+++ b/wx+/rtl.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef RTL_H_0183487180058718273432148
diff --git a/wx+/shell_execute.h b/wx+/shell_execute.h
index 62b6ab41..6a2920e9 100644
--- a/wx+/shell_execute.h
+++ b/wx+/shell_execute.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef EXECUTE_HEADER_23482134578134134
diff --git a/wx+/string_conv.h b/wx+/string_conv.h
index 815cf881..b919a3ee 100644
--- a/wx+/string_conv.h
+++ b/wx+/string_conv.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef STRINGCONV_H_INCLUDED
diff --git a/wx+/timespan.h b/wx+/timespan.h
index 56f0a2db..28c9e673 100644
--- a/wx+/timespan.h
+++ b/wx+/timespan.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef WX_TIMESPAN_CTRL_HEADER_INCLUDED
diff --git a/wx+/toggle_button.h b/wx+/toggle_button.h
index d213e024..666f291d 100644
--- a/wx+/toggle_button.h
+++ b/wx+/toggle_button.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef TOGGLEBUTTON_H_INCLUDED
diff --git a/wx+/tooltip.cpp b/wx+/tooltip.cpp
index fdb62618..447cbb1f 100644
--- a/wx+/tooltip.cpp
+++ b/wx+/tooltip.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "tooltip.h"
diff --git a/wx+/tooltip.h b/wx+/tooltip.h
index 127ad86c..9060c127 100644
--- a/wx+/tooltip.h
+++ b/wx+/tooltip.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef CUSTOMTOOLTIP_H_INCLUDED
diff --git a/wx+/zlib_wrap.cpp b/wx+/zlib_wrap.cpp
index fa0c54f0..6fad0383 100644
--- a/wx+/zlib_wrap.cpp
+++ b/wx+/zlib_wrap.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "zlib_wrap.h"
diff --git a/wx+/zlib_wrap.h b/wx+/zlib_wrap.h
index 9fa50240..7c805e23 100644
--- a/wx+/zlib_wrap.h
+++ b/wx+/zlib_wrap.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef SIMPLE_H_INCLUDED_18134135134135345489
diff --git a/zen/FindFilePlus/dll_main.cpp b/zen/FindFilePlus/dll_main.cpp
index a7637be4..ab3b25a3 100644
--- a/zen/FindFilePlus/dll_main.cpp
+++ b/zen/FindFilePlus/dll_main.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/zen/FindFilePlus/find_file_plus.cpp b/zen/FindFilePlus/find_file_plus.cpp
index 9b146008..5fc1a538 100644
--- a/zen/FindFilePlus/find_file_plus.cpp
+++ b/zen/FindFilePlus/find_file_plus.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "find_file_plus.h"
@@ -9,8 +9,8 @@
//#include <windows.h> //these two don't play nice with each other
#include "load_dll.h"
#include <zen/scope_guard.h>
-
-#include <cstdio>
+#include <new>
+//#include <cstdio>
using namespace dll;
using namespace findplus;
@@ -357,13 +357,18 @@ FindHandle findplus::openDir(const wchar_t* dirname)
{
try
{
- return new FileSearcher(dirname); //throw NtFileError
+ return new FileSearcher(dirname); //throw NtFileError, std::bad_alloc
}
catch (const NtFileError& e)
{
setWin32Error(rtlNtStatusToDosError(e.ntError));
return nullptr;
}
+ catch (const std::bad_alloc&) //not unlikely in this context! => handle!
+ {
+ setWin32Error(rtlNtStatusToDosError(STATUS_NO_MEMORY));
+ return nullptr;
+ }
}
diff --git a/zen/FindFilePlus/find_file_plus.h b/zen/FindFilePlus/find_file_plus.h
index a2f61cdc..a26bdeb3 100644
--- a/zen/FindFilePlus/find_file_plus.h
+++ b/zen/FindFilePlus/find_file_plus.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef FIND_FIRST_FILE_PLUS_HEADER_087483434
@@ -87,5 +87,6 @@ const char funName_closeDir[] = "closeDir";
inline const wchar_t* getDllName() { return zen::is64BitBuild ? L"FindFilePlus_x64.dll" : L"FindFilePlus_Win32.dll"; }
}
+#undef DLL_FUNCTION_DECLARATION
#endif //FIND_FIRST_FILE_PLUS_HEADER_087483434
diff --git a/zen/FindFilePlus/init_dll_binding.h b/zen/FindFilePlus/init_dll_binding.h
index 993a3790..44591ab4 100644
--- a/zen/FindFilePlus/init_dll_binding.h
+++ b/zen/FindFilePlus/init_dll_binding.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef INIT_DLL_BINDING_HEADER_ß018356031467832145
diff --git a/zen/FindFilePlus/load_dll.cpp b/zen/FindFilePlus/load_dll.cpp
index 5f72e31b..c9396f6d 100644
--- a/zen/FindFilePlus/load_dll.cpp
+++ b/zen/FindFilePlus/load_dll.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "load_dll.h"
diff --git a/zen/FindFilePlus/load_dll.h b/zen/FindFilePlus/load_dll.h
index ce414733..d661c4b9 100644
--- a/zen/FindFilePlus/load_dll.h
+++ b/zen/FindFilePlus/load_dll.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef LOAD_DLL_HEADER_0312463214872163832174
diff --git a/zen/IFileOperation/dll_main.cpp b/zen/IFileOperation/dll_main.cpp
index 95d14910..4665154a 100644
--- a/zen/IFileOperation/dll_main.cpp
+++ b/zen/IFileOperation/dll_main.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/zen/IFileOperation/file_op.cpp b/zen/IFileOperation/file_op.cpp
index 3861c5c0..8acc3d17 100644
--- a/zen/IFileOperation/file_op.cpp
+++ b/zen/IFileOperation/file_op.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "file_op.h"
diff --git a/zen/IFileOperation/file_op.h b/zen/IFileOperation/file_op.h
index c9df1e1e..86efc340 100644
--- a/zen/IFileOperation/file_op.h
+++ b/zen/IFileOperation/file_op.h
@@ -1,16 +1,16 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef RECYCLER_DLL_H
#define RECYCLER_DLL_H
#ifdef FILE_OP_DLL_EXPORTS
-#define FILE_OP_DLL_API extern "C" __declspec(dllexport)
+#define DLL_FUNCTION_DECLARATION extern "C" __declspec(dllexport)
#else
-#define FILE_OP_DLL_API extern "C" __declspec(dllimport)
+#define DLL_FUNCTION_DECLARATION extern "C" __declspec(dllimport)
#endif
#include <zen/build_info.h>
@@ -25,25 +25,25 @@ namespace fileop
//COM needs to be initialized before calling any of these functions! CoInitializeEx/CoUninitialize
//minimum OS: Windows Vista or later
-FILE_OP_DLL_API
+DLL_FUNCTION_DECLARATION
bool moveToRecycleBin(const wchar_t* fileNames[],
size_t fileNo); //size of fileNames array
-FILE_OP_DLL_API
+DLL_FUNCTION_DECLARATION
bool copyFile(const wchar_t* sourceFile,
const wchar_t* targetFile);
-FILE_OP_DLL_API
+DLL_FUNCTION_DECLARATION
bool checkRecycler(const wchar_t* dirname, bool& isRecycler); //returns false on error
-FILE_OP_DLL_API
+DLL_FUNCTION_DECLARATION
bool getLockingProcesses(const wchar_t* filename, const wchar_t*& procList); //get list of processes as single string, call freeString(procList) after use!
-FILE_OP_DLL_API
+DLL_FUNCTION_DECLARATION
void freeString(const wchar_t* str);
//get last error message if any of the functions above fail
-FILE_OP_DLL_API
+DLL_FUNCTION_DECLARATION
const wchar_t* getLastError(); //no nullptr check required!
/*----------
@@ -73,4 +73,6 @@ const char funName_getLastError [] = "getLastError";
inline const wchar_t* getDllName() { return zen::is64BitBuild ? L"FileOperation_x64.dll" : L"FileOperation_Win32.dll"; }
}
+#undef DLL_FUNCTION_DECLARATION
+
#endif //RECYCLER_DLL_H
diff --git a/zen/assert_static.h b/zen/assert_static.h
index 0f2a150a..c5b7f8c1 100644
--- a/zen/assert_static.h
+++ b/zen/assert_static.h
@@ -1,8 +1,7 @@
// **************************************************************************
// * This file is part of the zenXML project. It is distributed under the *
-// * Boost Software License, Version 1.0. See accompanying file *
-// * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt. *
-// * Copyright (C) ZenJu (zenju AT gmx DOT de) - All Rights Reserved *
+// * Boost Software License: http://www.boost.org/LICENSE_1_0.txt *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef ASSERTSTATIC_H_INCLUDED
diff --git a/zen/base64.h b/zen/base64.h
index fd4e3611..5f18ea36 100644
--- a/zen/base64.h
+++ b/zen/base64.h
@@ -1,31 +1,31 @@
// **************************************************************************
// * This file is part of the zenXML project. It is distributed under the *
-// * Boost Software License, Version 1.0. See accompanying file *
-// * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt. *
-// * Copyright (C) ZenJu (zenju AT gmx DOT de) - All Rights Reserved *
+// * Boost Software License: http://www.boost.org/LICENSE_1_0.txt *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef BASE64_HEADER_08473021856321840873021487213453214
#define BASE64_HEADER_08473021856321840873021487213453214
+#ifndef NDEBUG //no release build dependencies!
#include <iterator>
#include <cassert>
-#include "assert_static.h"
+#endif
namespace zen
{
//http://en.wikipedia.org/wiki/Base64
/*
Usage:
- const std::string input = "Sample text";
+ const std::string input = "Sample text";
std::string output;
zen::encodeBase64(input.begin(), input.end(), std::back_inserter(output));
//output contains "U2FtcGxlIHRleHQ="
*/
template <class InputIterator, class OutputIterator>
-OutputIterator encodeBase64(InputIterator first, InputIterator last, OutputIterator result); //throw ()
+OutputIterator encodeBase64(InputIterator first, InputIterator last, OutputIterator result); //nothrow!
template <class InputIterator, class OutputIterator>
-OutputIterator decodeBase64(InputIterator first, InputIterator last, OutputIterator result); //throw ()
+OutputIterator decodeBase64(InputIterator first, InputIterator last, OutputIterator result); //nothrow!
@@ -38,14 +38,11 @@ OutputIterator decodeBase64(InputIterator first, InputIterator last, OutputItera
-
-
-
-
-//---------------------------------------- implementation ----------------------------------------
+//------------------------- implementation -------------------------------
namespace implementation
{
-const char ENCODING_MIME[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; //64 chars for base64 encoding + padding char
+//64 chars for base64 encoding + padding char
+const char ENCODING_MIME[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
const signed char DECODING_MIME[] =
{
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
@@ -57,7 +54,7 @@ const signed char DECODING_MIME[] =
-1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1
};
-const size_t INDEX_PAD = 64;
+const unsigned char INDEX_PAD = 64; //"="
}
@@ -66,12 +63,12 @@ template <class InputIterator, class OutputIterator> inline
OutputIterator encodeBase64(InputIterator first, InputIterator last, OutputIterator result)
{
using namespace implementation;
- assert_static(sizeof(std::iterator_traits<InputIterator>::value_type) == 1);
- assert_static(sizeof(ENCODING_MIME) == 65 + 1);
+ static_assert(sizeof(typename std::iterator_traits<InputIterator>::value_type) == 1, "");
+ static_assert(sizeof(ENCODING_MIME) == 65 + 1, "");
while (first != last)
{
- const unsigned char a = *first++;
+ const unsigned char a = static_cast<unsigned char>(*first++);
*result++ = ENCODING_MIME[a >> 2];
if (first == last)
@@ -81,7 +78,7 @@ OutputIterator encodeBase64(InputIterator first, InputIterator last, OutputItera
*result++ = ENCODING_MIME[INDEX_PAD];
break;
}
- const unsigned char b = *first++;
+ const unsigned char b = static_cast<unsigned char>(*first++);
*result++ = ENCODING_MIME[((a & 0x3) << 4) | (b >> 4)];
if (first == last)
@@ -90,7 +87,7 @@ OutputIterator encodeBase64(InputIterator first, InputIterator last, OutputItera
*result++ = ENCODING_MIME[INDEX_PAD];
break;
}
- const unsigned char c = *first++;
+ const unsigned char c = static_cast<unsigned char>(*first++);
*result++ = ENCODING_MIME[((b & 0xf) << 2) | (c >> 6)];
*result++ = ENCODING_MIME[c & 0x3f];
}
@@ -103,10 +100,10 @@ template <class InputIterator, class OutputIterator> inline
OutputIterator decodeBase64(InputIterator first, InputIterator last, OutputIterator result)
{
using namespace implementation;
- assert_static(sizeof(std::iterator_traits<InputIterator>::value_type) == 1);
- assert_static(sizeof(DECODING_MIME) == 128);
+ static_assert(sizeof(typename std::iterator_traits<InputIterator>::value_type) == 1, "");
+ static_assert(sizeof(DECODING_MIME) == 128, "");
- const int INDEX_END = INDEX_PAD + 1;
+ const unsigned char INDEX_END = INDEX_PAD + 1;
auto readIndex = [&]() -> unsigned char //return index within [0, 64] or INDEX_END if end of input
{
@@ -115,17 +112,17 @@ OutputIterator decodeBase64(InputIterator first, InputIterator last, OutputItera
if (first == last)
return INDEX_END;
- unsigned char ch = *first++;
- if (ch < 128) //skip all unknown characters (including carriage return, line-break, tab)
+ const unsigned char ch = static_cast<unsigned char>(*first++);
+ if (ch < 128) //we're in lower ASCII table half
{
const int index = implementation::DECODING_MIME[ch];
- if (0 <= index && index <= INDEX_PAD) //respect padding
+ if (0 <= index && index <= static_cast<int>(INDEX_PAD)) //skip all unknown characters (including carriage return, line-break, tab)
return index;
}
}
};
- while (true)
+ for (;;)
{
const unsigned char index1 = readIndex();
const unsigned char index2 = readIndex();
@@ -134,7 +131,7 @@ OutputIterator decodeBase64(InputIterator first, InputIterator last, OutputItera
assert(index1 == INDEX_END && index2 == INDEX_END);
break;
}
- *result++ = (index1 << 2) | (index2 >> 4);
+ *result++ = static_cast<char>((index1 << 2) | (index2 >> 4));
const unsigned char index3 = readIndex();
if (index3 >= INDEX_PAD) //padding
@@ -142,7 +139,7 @@ OutputIterator decodeBase64(InputIterator first, InputIterator last, OutputItera
assert(index3 == INDEX_PAD);
break;
}
- *result++ = ((index2 & 0xf) << 4) | (index3 >> 2);
+ *result++ = static_cast<char>(((index2 & 0xf) << 4) | (index3 >> 2));
const unsigned char index4 = readIndex();
if (index4 >= INDEX_PAD) //padding
@@ -150,7 +147,7 @@ OutputIterator decodeBase64(InputIterator first, InputIterator last, OutputItera
assert(index4 == INDEX_PAD);
break;
}
- *result++ = ((index3 & 0x3) << 6) | index4;
+ *result++ = static_cast<char>(((index3 & 0x3) << 6) | index4);
}
return result;
}
diff --git a/zen/basic_math.h b/zen/basic_math.h
index 2c0381bf..7923dc5d 100644
--- a/zen/basic_math.h
+++ b/zen/basic_math.h
@@ -1,8 +1,7 @@
// **************************************************************************
// * This file is part of the zenXML project. It is distributed under the *
-// * Boost Software License, Version 1.0. See accompanying file *
-// * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt. *
-// * Copyright (C) ZenJu (zenju AT gmx DOT de) - All Rights Reserved *
+// * Boost Software License: http://www.boost.org/LICENSE_1_0.txt *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef BASIC_MATH_HEADER_34726398432
@@ -14,7 +13,6 @@
#include <functional>
#include <cassert>
-
namespace numeric
{
template <class T>
diff --git a/zen/build_info.h b/zen/build_info.h
index 822a78d1..d69a8c1c 100644
--- a/zen/build_info.h
+++ b/zen/build_info.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef BUILDINFO_H_INCLUDED
diff --git a/zen/com_error.h b/zen/com_error.h
index f5463d68..eaa7744f 100644
--- a/zen/com_error.h
+++ b/zen/com_error.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef COM_ERROR_HEADER
diff --git a/zen/com_ptr.h b/zen/com_ptr.h
index 9328d645..bb52b5cb 100644
--- a/zen/com_ptr.h
+++ b/zen/com_ptr.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef SMART_COM_PTR_H
diff --git a/zen/com_util.h b/zen/com_util.h
index ac733566..4f7cd0b8 100644
--- a/zen/com_util.h
+++ b/zen/com_util.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef COM_UTILITY_HEADER
diff --git a/zen/debug_log.h b/zen/debug_log.h
index 04c42a91..45283da5 100644
--- a/zen/debug_log.h
+++ b/zen/debug_log.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef DEBUG_LOG_HEADER_017324601673246392184621895740256342
diff --git a/zen/debug_new.cpp b/zen/debug_new.cpp
index f8273163..ea7771b4 100644
--- a/zen/debug_new.cpp
+++ b/zen/debug_new.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "debug_new.h"
diff --git a/zen/debug_new.h b/zen/debug_new.h
index ed732a87..6007344d 100644
--- a/zen/debug_new.h
+++ b/zen/debug_new.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef DEBUGNEW_H_INCLUDED
diff --git a/zen/deprecate.h b/zen/deprecate.h
index cd7c1e08..56f8e27c 100644
--- a/zen/deprecate.h
+++ b/zen/deprecate.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef DEPRECATE_HEADER_2348970348
diff --git a/zen/dir_watcher.cpp b/zen/dir_watcher.cpp
index a76c0cc3..c6f0b5e6 100644
--- a/zen/dir_watcher.cpp
+++ b/zen/dir_watcher.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "dir_watcher.h"
diff --git a/zen/dir_watcher.h b/zen/dir_watcher.h
index 52a08226..56497040 100644
--- a/zen/dir_watcher.h
+++ b/zen/dir_watcher.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef DIR_WATCHER_348577025748023458
diff --git a/zen/dll.h b/zen/dll.h
index 837e21a0..6f139ac3 100644
--- a/zen/dll.h
+++ b/zen/dll.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef DLLLOADER_H_INCLUDED
@@ -20,9 +20,13 @@ Manage DLL function and library ownership
- full value semantics
Usage:
- typedef BOOL (WINAPI* IsWow64ProcessFun)(HANDLE hProcess, PBOOL Wow64Process);
- const zen::SysDllFun<IsWow64ProcessFun> isWow64Process(L"kernel32.dll", "IsWow64Process");
- if (isWow64Process) ... use function ptr ...
+ typedef BOOL (WINAPI* IsWow64ProcessFun)(HANDLE hProcess, PBOOL Wow64Process);
+ const zen::SysDllFun<IsWow64ProcessFun> isWow64Process(L"kernel32.dll", "IsWow64Process");
+ if (isWow64Process) ... use function ptr ...
+
+ Usage 2:
+ #define DEF_DLL_FUN(name) DllFun<dll_ns::FunType_##name> name(getDllName(), dll_ns::funName_##name);
+ DEF_DLL_FUN(funname1); DEF_DLL_FUN(funname2); DEF_DLL_FUN(funname3);
*/
template <class Func>
@@ -32,15 +36,13 @@ public:
DllFun() : fun(nullptr) {}
DllFun(const wchar_t* libraryName, const char* functionName) :
- hLibRef(new HMODULE(::LoadLibrary(libraryName)), deleter),
- fun(*hLibRef ? reinterpret_cast<Func>(::GetProcAddress(*hLibRef, functionName)) : nullptr) {}
+ hLibRef(::LoadLibrary(libraryName), ::FreeLibrary),
+ fun(hLibRef ? reinterpret_cast<Func>(::GetProcAddress(static_cast<HMODULE>(hLibRef.get()), functionName)) : nullptr) {}
operator Func() const { return fun; }
private:
- static void deleter(HMODULE* ptr) { if (*ptr) ::FreeLibrary(*ptr); delete ptr; }
-
- std::shared_ptr<const HMODULE> hLibRef;
+ std::shared_ptr<void> hLibRef; //we would prefer decltype(*HMODULE()) if only it would work...
Func fun;
};
diff --git a/zen/error_log.h b/zen/error_log.h
index c591e470..e42ca89d 100644
--- a/zen/error_log.h
+++ b/zen/error_log.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef ERRORLOGGING_H_INCLUDED
diff --git a/zen/file_error.h b/zen/file_error.h
index e5ff6515..f107a736 100644
--- a/zen/file_error.h
+++ b/zen/file_error.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef FILEERROR_H_INCLUDED
diff --git a/zen/file_handling.cpp b/zen/file_handling.cpp
index 732c90f4..a646a13f 100644
--- a/zen/file_handling.cpp
+++ b/zen/file_handling.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "file_handling.h"
@@ -13,15 +13,15 @@
#include "symlink_target.h"
#include "file_io.h"
#include "assert_static.h"
-#include <boost/thread/tss.hpp>
#include "file_id_def.h"
+#include <boost/thread/tss.hpp>
#ifdef FFS_WIN
+#include <Aclapi.h>
#include "privilege.h"
#include "dll.h"
#include "win.h" //includes "windows.h"
#include "long_path_prefix.h"
-#include <Aclapi.h>
#include "dst_hack.h"
#include "win_ver.h"
#include "IFileOperation/file_op.h"
@@ -269,8 +269,8 @@ DWORD retrieveVolumeSerial(const Zstring& pathName) //return 0 on error!
return volumeSerial;
}
-#elif defined FFS_LINUX
+#elif defined FFS_LINUX
dev_t retrieveVolumeSerial(const Zstring& pathName) //return 0 on error!
{
Zstring volumePathName = pathName;
@@ -655,6 +655,10 @@ void zen::removeDirectory(const Zstring& directory, CallbackRemoveDir* callback)
if (::rmdir(directory.c_str()) != 0)
#endif
throw FileError(replaceCpy(_("Cannot delete directory %x."), L"%x", fmtFileName(directory)) + L"\n\n" + getLastErrorFormatted());
+ //may spuriously fail with ERROR_DIR_NOT_EMPTY(145) even though all child items have
+ //successfully been *marked* for deletion, but some application still has a handle open!
+ //e.g. Open "C:\Test\Dir1\Dir2" (filled with lots of files) in Explorer, then delete "C:\Test\Dir1" via ::RemoveDirectory() => Error 145
+ //Sample code: http://us.generation-nt.com/answer/createfile-directory-handles-removing-parent-help-29126332.html
if (callback)
callback->notifyDirDeletion(directory); //and once per folder
@@ -834,8 +838,56 @@ void zen::setFileTime(const Zstring& filename, const Int64& modificationTime, Pr
}
}
+ std::wstring errorMsg = replaceCpy(_("Cannot write modification time of %x."), L"%x", fmtFileName(filename)) + L"\n\n" + getLastErrorFormatted(lastErr);
+
+ //add more meaningful message: FAT accepts only a subset of the NTFS date range
+ if (lastErr == ERROR_INVALID_PARAMETER &&
+ dst::isFatDrive(filename))
+ {
+ //we need a low-level reliable routine to format a potentially invalid date => don't use strftime!!!
+ auto fmtDate = [](const FILETIME& ft) -> Zstring
+ {
+ SYSTEMTIME st = {};
+ if (!::FileTimeToSystemTime(&ft, //__in const FILETIME *lpFileTime,
+ &st)) //__out LPSYSTEMTIME lpSystemTime
+ return Zstring();
+
+ Zstring dateTime;
+ {
+ const int bufferSize = ::GetDateFormat(LOCALE_USER_DEFAULT, 0, &st, nullptr, nullptr, 0);
+ if (bufferSize > 0)
+ {
+ std::vector<wchar_t> buffer(bufferSize);
+ if (::GetDateFormat(LOCALE_USER_DEFAULT, //_In_ LCID Locale,
+ 0, //_In_ DWORD dwFlags,
+ &st, //_In_opt_ const SYSTEMTIME *lpDate,
+ nullptr, //_In_opt_ LPCTSTR lpFormat,
+ &buffer[0], //_Out_opt_ LPTSTR lpDateStr,
+ bufferSize) > 0) //_In_ int cchDate
+ dateTime = &buffer[0]; //GetDateFormat() returns char count *including* 0-termination!
+ }
+ }
+
+ const int bufferSize = ::GetTimeFormat(LOCALE_USER_DEFAULT, 0, &st, nullptr, nullptr, 0);
+ if (bufferSize > 0)
+ {
+ std::vector<wchar_t> buffer(bufferSize);
+ if (::GetTimeFormat(LOCALE_USER_DEFAULT, 0, &st, nullptr, &buffer[0], bufferSize) > 0)
+ {
+ dateTime += L" ";
+ dateTime += &buffer[0]; //GetDateFormat() returns char count *including* 0-termination!
+ }
+ }
+ return dateTime;
+ };
+
+ errorMsg += std::wstring(L"\nA FAT volume can only store dates between 1980 and 2107:\n") +
+ L"\twrite (UTC): \t" + fmtDate(lastWriteTime) +
+ (!isNullTime(creationTime) ? L"\n\tcreate (UTC): \t" + fmtDate(creationTime) : L"");
+ }
+
if (lastErr != ERROR_SUCCESS)
- throw FileError(replaceCpy(_("Cannot write modification time of %x."), L"%x", fmtFileName(filename)) + L"\n\n" + getLastErrorFormatted(lastErr));
+ throw FileError(errorMsg);
}
#ifndef NDEBUG //dst hack: verify data written
@@ -1926,7 +1978,7 @@ DWORD CALLBACK copyCallbackInternal(LARGE_INTEGER totalFileSize,
::MessageBox(nullptr, L"You've just discovered a bug in WIN32 API function \"CopyFileEx\"! \n\n\
Please write a mail to the author of FreeFileSync at zenju@gmx.de and simply state that\n\
\"totalBytesTransferred.HighPart can be below zero\"!\n\n\
- This will then be handled in future versions of FreeFileSync.\n\nThanks -ZenJu",
+ This will then be handled in future versions of FreeFileSync.\n\nThanks -Zenju",
nullptr, 0);
try
{
@@ -1971,7 +2023,9 @@ void copyFileWindowsDefault(const Zstring& sourceFile,
//if (supportUnbufferedCopy) //see http://blogs.technet.com/b/askperf/archive/2007/05/08/slow-large-file-copy-issues.aspx
// copyFlags |= COPY_FILE_NO_BUFFERING; //no perf difference at worst, huge improvement for large files (20% in test NTFS -> NTFS)
- //It's a shame this flag causes file corruption! https://sourceforge.net/tracker/?func=detail&atid=1093080&aid=3529683&group_id=234430
+ //It's a shame this flag causes file corruption! https://sourceforge.net/projects/freefilesync/forums/forum/847542/topic/5177950
+ //documentation on CopyFile2() even states: "It is not recommended to pause copies that are using this flag." How dangerous is this thing, why offer it at all???
+ //perf advantage: ~15% faster
CallbackData cbd(callback, sourceFile, targetFile);
@@ -2043,12 +2097,12 @@ void copyFileWindowsDefault(const Zstring& sourceFile,
//DST hack
const Int64 modTime = getFileTime(sourceFile, SYMLINK_FOLLOW); //throw FileError
setFileTime(targetFile, modTime, SYMLINK_FOLLOW); //throw FileError
+ //caveat: - ::CopyFileEx() silently *ignores* failure to set modification time!!! => we need to set again in order to catch such errors!
+ // - this sequence leads to a loss of precision of up to 1 sec!
+ // - perf-loss on USB sticks with many small files of about 30%! damn!
if (newAttrib)
newAttrib->modificationTime = modTime;
-
- //note: this sequence leads to a loss of precision of up to 1 sec!
- //perf-loss on USB sticks with many small files of about 30%! damn!
}
guardTarget.dismiss(); //target has been created successfully!
diff --git a/zen/file_handling.h b/zen/file_handling.h
index 12fbb31c..878c467c 100644
--- a/zen/file_handling.h
+++ b/zen/file_handling.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef FILE_HANDLING_H_INCLUDED
diff --git a/zen/file_id.cpp b/zen/file_id.cpp
index 6730252e..3d04ce34 100644
--- a/zen/file_id.cpp
+++ b/zen/file_id.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "file_id.h"
diff --git a/zen/file_id.h b/zen/file_id.h
index ba11483d..9f73a29b 100644
--- a/zen/file_id.h
+++ b/zen/file_id.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef FILEID_H_INCLUDED
diff --git a/zen/file_id_def.h b/zen/file_id_def.h
index cb80dc19..5f485c68 100644
--- a/zen/file_id_def.h
+++ b/zen/file_id_def.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef FILE_ID_INTERNAL_HEADER_013287632486321493
diff --git a/zen/file_io.cpp b/zen/file_io.cpp
index 279b3a72..0b5586b0 100644
--- a/zen/file_io.cpp
+++ b/zen/file_io.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "file_io.h"
diff --git a/zen/file_io.h b/zen/file_io.h
index f37554f3..b4d58ea4 100644
--- a/zen/file_io.h
+++ b/zen/file_io.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef FILEIO_H_INCLUDED
diff --git a/zen/file_traverser.cpp b/zen/file_traverser.cpp
index 37b83ce6..a95f5dee 100644
--- a/zen/file_traverser.cpp
+++ b/zen/file_traverser.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "file_traverser.h"
diff --git a/zen/file_traverser.h b/zen/file_traverser.h
index 3fc9b57c..d8a99a4d 100644
--- a/zen/file_traverser.h
+++ b/zen/file_traverser.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef FILETRAVERSER_H_INCLUDED
diff --git a/zen/fixed_list.h b/zen/fixed_list.h
index 6d083f8b..e3083c89 100644
--- a/zen/fixed_list.h
+++ b/zen/fixed_list.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef FIXED_LIST_01238467085684139453534
diff --git a/wx+/format_unit.cpp b/zen/format_unit.cpp
index a2190397..8e5b04d3 100644
--- a/wx+/format_unit.cpp
+++ b/zen/format_unit.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "format_unit.h"
@@ -301,14 +301,14 @@ std::wstring zen::utcToLocalTimeString(Int64 utcTime)
SYSTEMTIME systemTimeLocal = {};
- if (useNewLocalTimeCalculation) //use DST setting from source date (like in Windows 7, see http://msdn.microsoft.com/en-us/library/ms724277(VS.85).aspx)
+ if (useNewLocalTimeCalculation) //use DST setting from source date (like in Windows 7, see http://msdn.microsoft.com/en-us/library/ms724277(VS.85).aspx
{
SYSTEMTIME systemTimeUtc = {};
if (!::FileTimeToSystemTime(&lastWriteTimeUtc, //__in const FILETIME *lpFileTime,
&systemTimeUtc)) //__out LPSYSTEMTIME lpSystemTime
return errorMsg();
- if (!::SystemTimeToTzSpecificLocalTime(nullptr, //__in_opt LPTIME_ZONE_INFORMATION lpTimeZone,
+ if (!::SystemTimeToTzSpecificLocalTime(nullptr, //__in_opt LPTIME_ZONE_INFORMATION lpTimeZone,
&systemTimeUtc, //__in LPSYSTEMTIME lpUniversalTime,
&systemTimeLocal)) //__out LPSYSTEMTIME lpLocalTime
return errorMsg();
@@ -316,12 +316,12 @@ std::wstring zen::utcToLocalTimeString(Int64 utcTime)
else //use DST setting (like in Windows 2000 and XP)
{
FILETIME fileTimeLocal = {};
- if (!::FileTimeToLocalFileTime(&lastWriteTimeUtc, //pointer to UTC file time to convert
- &fileTimeLocal)) //pointer to converted file time
+ if (!::FileTimeToLocalFileTime(&lastWriteTimeUtc, //_In_ const FILETIME *lpFileTime,
+ &fileTimeLocal)) //_Out_ LPFILETIME lpLocalFileTime
return errorMsg();
- if (!::FileTimeToSystemTime(&fileTimeLocal, //pointer to file time to convert
- &systemTimeLocal)) //pointer to structure to receive system time
+ if (!::FileTimeToSystemTime(&fileTimeLocal, //__in const FILETIME *lpFileTime,
+ &systemTimeLocal)) //__out LPSYSTEMTIME lpSystemTime
return errorMsg();
}
diff --git a/wx+/format_unit.h b/zen/format_unit.h
index 6d29d9a8..f634e5e5 100644
--- a/wx+/format_unit.h
+++ b/zen/format_unit.h
@@ -1,11 +1,11 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
-#ifndef UTIL_H_INCLUDED
-#define UTIL_H_INCLUDED
+#ifndef FMT_UNIT_8702184019487324
+#define FMT_UNIT_8702184019487324
#include <string>
#include <zen/string_tools.h>
@@ -20,7 +20,7 @@ std::wstring fractionToShortString(double fraction); //within [0, 1]
template <class NumberType>
std::wstring toGuiString(NumberType number); //format integer number including thousands separator
-std::wstring utcToLocalTimeString(Int64 utcTime);
+std::wstring utcToLocalTimeString(Int64 utcTime); //like Windows Explorer would...
@@ -56,4 +56,4 @@ std::wstring toGuiString(NumberType number)
}
}
-#endif // UTIL_H_INCLUDED
+#endif
diff --git a/zen/guid.h b/zen/guid.h
index 5308af6a..823f4431 100644
--- a/zen/guid.h
+++ b/zen/guid.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef GUID_H_INCLUDED
diff --git a/zen/i18n.h b/zen/i18n.h
index ece55311..217d506c 100644
--- a/zen/i18n.h
+++ b/zen/i18n.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef I18_N_HEADER_3843489325045
diff --git a/zen/int64.h b/zen/int64.h
index 17c34b9f..238efb14 100644
--- a/zen/int64.h
+++ b/zen/int64.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef FFS_LARGE_64_BIT_INTEGER_H_INCLUDED
diff --git a/zen/last_error.h b/zen/last_error.h
index e5665989..356192ab 100644
--- a/zen/last_error.h
+++ b/zen/last_error.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef SYSTEMFUNCTIONS_H_INCLUDED
diff --git a/zen/long_path_prefix.h b/zen/long_path_prefix.h
index cd81b8b2..80b5453e 100644
--- a/zen/long_path_prefix.h
+++ b/zen/long_path_prefix.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef LONGPATHPREFIX_H_INCLUDED
diff --git a/zen/notify_removal.cpp b/zen/notify_removal.cpp
index e2940036..29958f0c 100644
--- a/zen/notify_removal.cpp
+++ b/zen/notify_removal.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "notify_removal.h"
diff --git a/zen/notify_removal.h b/zen/notify_removal.h
index 91e462bd..dc8149a0 100644
--- a/zen/notify_removal.h
+++ b/zen/notify_removal.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef NOTIFY_H_INCLUDED
diff --git a/zen/optional.h b/zen/optional.h
index 4003824b..4d85e53a 100644
--- a/zen/optional.h
+++ b/zen/optional.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef OPTIONAL_H_2857428578342203589
diff --git a/zen/perf.h b/zen/perf.h
index 8760ef0b..c8a14950 100644
--- a/zen/perf.h
+++ b/zen/perf.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef DEBUG_PERF_HEADER
diff --git a/zen/privilege.h b/zen/privilege.h
index 9e5f12e8..70d5b7f1 100644
--- a/zen/privilege.h
+++ b/zen/privilege.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef PRIVILEGE_H_INCLUDED
diff --git a/zen/read_txt.h b/zen/read_txt.h
index 402403d8..0678ac52 100644
--- a/zen/read_txt.h
+++ b/zen/read_txt.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef PARSE_TXT_H_INCLUDED
diff --git a/zen/recycler.cpp b/zen/recycler.cpp
index 3fd86c33..6593540a 100644
--- a/zen/recycler.cpp
+++ b/zen/recycler.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "recycler.h"
diff --git a/zen/recycler.h b/zen/recycler.h
index 8a9ab13b..cdadf371 100644
--- a/zen/recycler.h
+++ b/zen/recycler.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef RECYCLER_H_INCLUDED
diff --git a/zen/scope_guard.h b/zen/scope_guard.h
index f25b7dc3..7d79e115 100644
--- a/zen/scope_guard.h
+++ b/zen/scope_guard.h
@@ -1,8 +1,7 @@
// **************************************************************************
// * This file is part of the zenXML project. It is distributed under the *
-// * Boost Software License, Version 1.0. See accompanying file *
-// * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt. *
-// * Copyright (C) ZenJu (zenju AT gmx DOT de) - All Rights Reserved *
+// * Boost Software License: http://www.boost.org/LICENSE_1_0.txt *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef ZEN_SCOPEGUARD_8971632487321434
diff --git a/zen/serialize.h b/zen/serialize.h
index cc694bb5..d22e3cea 100644
--- a/zen/serialize.h
+++ b/zen/serialize.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef SERIALIZE_H_INCLUDED
diff --git a/zen/stl_tools.h b/zen/stl_tools.h
index 8f1ee704..52f9f916 100644
--- a/zen/stl_tools.h
+++ b/zen/stl_tools.h
@@ -1,8 +1,7 @@
// **************************************************************************
// * This file is part of the zenXML project. It is distributed under the *
-// * Boost Software License, Version 1.0. See accompanying file *
-// * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt. *
-// * Copyright (C) ZenJu (zenju AT gmx DOT de) - All Rights Reserved *
+// * Boost Software License: http://www.boost.org/LICENSE_1_0.txt *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef STL_TOOLS_HEADER_84567184321434
diff --git a/zen/string_base.h b/zen/string_base.h
index 834aff05..19bf6267 100644
--- a/zen/string_base.h
+++ b/zen/string_base.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef Z_BASE_H_INCLUDED
diff --git a/zen/string_tools.h b/zen/string_tools.h
index 87d5d4d0..32d12119 100644
--- a/zen/string_tools.h
+++ b/zen/string_tools.h
@@ -1,8 +1,7 @@
// **************************************************************************
// * This file is part of the zenXML project. It is distributed under the *
-// * Boost Software License, Version 1.0. See accompanying file *
-// * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt. *
-// * Copyright (C) ZenJu (zenju AT gmx DOT de) - All Rights Reserved *
+// * Boost Software License: http://www.boost.org/LICENSE_1_0.txt *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef STRING_TOOLS_HEADER_213458973046
diff --git a/zen/string_traits.h b/zen/string_traits.h
index 38ae9116..93e8c510 100644
--- a/zen/string_traits.h
+++ b/zen/string_traits.h
@@ -1,8 +1,7 @@
// **************************************************************************
// * This file is part of the zenXML project. It is distributed under the *
-// * Boost Software License, Version 1.0. See accompanying file *
-// * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt. *
-// * Copyright (C) ZenJu (zenju AT gmx DOT de) - All Rights Reserved *
+// * Boost Software License: http://www.boost.org/LICENSE_1_0.txt *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef STRING_TRAITS_HEADER_813274321443234
diff --git a/zen/symlink_target.h b/zen/symlink_target.h
index d1576990..1a616559 100644
--- a/zen/symlink_target.h
+++ b/zen/symlink_target.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef SYMLINK_WIN_H_INCLUDED
diff --git a/zen/thread.h b/zen/thread.h
index cffed5ed..440940ce 100644
--- a/zen/thread.h
+++ b/zen/thread.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef BOOST_THREAD_WRAP_H
@@ -86,6 +86,10 @@ private:
//###################### implementation ######################
+#ifndef BOOST_HAS_THREADS
+#error just some paranoia check...
+#endif
+
template <class T, class Function> inline
auto async2(Function fun) -> boost::unique_future<T> //workaround VS2010 bug: bool (*fun)(); decltype(fun()) == int!
{
diff --git a/zen/tick_count.h b/zen/tick_count.h
index 5c7daa00..962ebcb0 100644
--- a/zen/tick_count.h
+++ b/zen/tick_count.h
@@ -1,8 +1,7 @@
// **************************************************************************
// * This file is part of the zenXML project. It is distributed under the *
-// * Boost Software License, Version 1.0. See accompanying file *
-// * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt. *
-// * Copyright (C) ZenJu (zenju AT gmx DOT de) - All Rights Reserved *
+// * Boost Software License: http://www.boost.org/LICENSE_1_0.txt *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef ZEN_TICK_COUNT_HEADER_3807326
diff --git a/zen/time.h b/zen/time.h
index 932deca8..aa1613cc 100644
--- a/zen/time.h
+++ b/zen/time.h
@@ -1,8 +1,7 @@
// **************************************************************************
// * This file is part of the zenXML project. It is distributed under the *
-// * Boost Software License, Version 1.0. See accompanying file *
-// * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt. *
-// * Copyright (C) ZenJu (zenju AT gmx DOT de) - All Rights Reserved *
+// * Boost Software License: http://www.boost.org/LICENSE_1_0.txt *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef ZEN_TIME_HEADER_845709281432434
@@ -11,7 +10,6 @@
#include <ctime>
#include "string_tools.h"
-
namespace zen
{
struct TimeComp //replaces "struct std::tm" and SYSTEMTIME
@@ -168,23 +166,28 @@ struct GetFormat<FormatIsoDateTimeTag> //%Y-%m-%d %H:%M:%S - e.g. 2001-08-23 14:
// VS 2010: CRASH unless "_invalid_parameter_handler" is set: http://msdn.microsoft.com/en-us/library/ksazx244.aspx
// GCC: returns 0, apparently no crash. Still, considering some clib maintainer's comments, we should expect the worst!
inline
-size_t strftimeWrap(char* buffer, size_t bufferSize, const char* format, const struct std::tm* timeptr)
+size_t strftimeWrap_impl(char* buffer, size_t bufferSize, const char* format, const struct std::tm* timeptr)
{
return std::strftime(buffer, bufferSize, format, timeptr);
}
inline
-size_t strftimeWrap(wchar_t* buffer, size_t bufferSize, const wchar_t* format, const struct std::tm* timeptr)
+size_t strftimeWrap_impl(wchar_t* buffer, size_t bufferSize, const wchar_t* format, const struct std::tm* timeptr)
{
return std::wcsftime(buffer, bufferSize, format, timeptr);
}
-
+/*
inline
bool isValid(const struct std::tm& t)
{
- auto inRange = [](int value, int minVal, int maxVal) { return minVal <= value && value <= maxVal; };
+ -> not enough! MSCRT has different limits than the C standard which even seem to change with different versions:
+ _VALIDATE_RETURN((( timeptr->tm_sec >=0 ) && ( timeptr->tm_sec <= 59 ) ), EINVAL, FALSE)
+ _VALIDATE_RETURN(( timeptr->tm_year >= -1900 ) && ( timeptr->tm_year <= 8099 ), EINVAL, FALSE)
+ -> also std::mktime does *not* help here at all!
+
+ auto inRange = [](int value, int minVal, int maxVal) { return minVal <= value && value <= maxVal; };
//http://www.cplusplus.com/reference/clibrary/ctime/tm/
return inRange(t.tm_sec , 0, 61) &&
@@ -197,6 +200,21 @@ bool isValid(const struct std::tm& t)
inRange(t.tm_yday, 0, 365);
//tm_isdst
};
+*/
+
+template <class CharType> inline
+size_t strftimeWrap(CharType* buffer, size_t bufferSize, const CharType* format, const struct std::tm* timeptr)
+{
+#if defined _MSC_VER && !defined NDEBUG
+ //it's no use: application init must register an invalid parameter that does nothing !!!
+ //=> strftime will abort with 0 and set errno to EINVAL instead of CRASH THE APPLICATION!
+ _invalid_parameter_handler oldHandler = _set_invalid_parameter_handler(nullptr);
+ assert(oldHandler);
+ _set_invalid_parameter_handler(oldHandler);
+#endif
+
+ return strftimeWrap_impl(buffer, bufferSize, format, timeptr);
+}
struct UserDefinedFormatTag {};
@@ -210,9 +228,6 @@ String formatTime(const String2& format, const TimeComp& comp, UserDefinedFormat
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
- if (!isValid(ctc)) //strftime() might kill the app otherwise, std::mktime does *not* help here at all!
- return String();
-
CharType buffer[256];
const size_t charsWritten = strftimeWrap(buffer, 256, strBegin(format), &ctc);
return String(buffer, charsWritten);
diff --git a/zen/type_tools.h b/zen/type_tools.h
index 7bf75ae0..c83e8f1e 100644
--- a/zen/type_tools.h
+++ b/zen/type_tools.h
@@ -1,8 +1,7 @@
// **************************************************************************
// * This file is part of the zenXML project. It is distributed under the *
-// * Boost Software License, Version 1.0. See accompanying file *
-// * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt. *
-// * Copyright (C) ZenJu (zenju AT gmx DOT de) - All Rights Reserved *
+// * Boost Software License: http://www.boost.org/LICENSE_1_0.txt *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef TYPE_TOOLS_HEADER_45237590734254545
diff --git a/zen/type_traits.h b/zen/type_traits.h
index 4945da19..15352e8c 100644
--- a/zen/type_traits.h
+++ b/zen/type_traits.h
@@ -1,8 +1,7 @@
// **************************************************************************
// * This file is part of the zenXML project. It is distributed under the *
-// * Boost Software License, Version 1.0. See accompanying file *
-// * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt. *
-// * Copyright (C) ZenJu (zenju AT gmx DOT de) - All Rights Reserved *
+// * Boost Software License: http://www.boost.org/LICENSE_1_0.txt *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef TYPE_TRAITS_HEADER_3425628658765467
diff --git a/zen/utf.h b/zen/utf.h
index fa96dcb1..27804a21 100644
--- a/zen/utf.h
+++ b/zen/utf.h
@@ -1,8 +1,7 @@
// **************************************************************************
// * This file is part of the zenXML project. It is distributed under the *
-// * Boost Software License, Version 1.0. See accompanying file *
-// * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt. *
-// * Copyright (C) ZenJu (zenju AT gmx DOT de) - All Rights Reserved *
+// * Boost Software License: http://www.boost.org/LICENSE_1_0.txt *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef STRING_UTF8_HEADER_01832479146991573473545
diff --git a/zen/warn_static.h b/zen/warn_static.h
index 6beefee7..70679a12 100644
--- a/zen/warn_static.h
+++ b/zen/warn_static.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef WARN_STATIC_HEADER_08724567834560832745
diff --git a/zen/win.h b/zen/win.h
index ebc54064..45487a09 100644
--- a/zen/win.h
+++ b/zen/win.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef YAWFWH_YET_ANOTHER_WRAPPER_FOR_WINDOWS_H
diff --git a/zen/win_ver.h b/zen/win_ver.h
index 0c18a822..2c5e2f81 100644
--- a/zen/win_ver.h
+++ b/zen/win_ver.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef WINDOWS_VERSION_HEADER_238470348254325
@@ -15,6 +15,7 @@ bool winXpOrLater();
bool winServer2003orLater();
bool vistaOrLater();
bool win7OrLater();
+bool win8OrLater();
@@ -35,6 +36,7 @@ bool win7OrLater();
//Server 2003 is version 5.2
//Vista is version 6.0
//Seven is version 6.1
+//Eight is version 6.2
namespace impl
{
@@ -60,6 +62,9 @@ bool vistaOrLater() { return impl::winXyOrLater(6, 0); }
inline
bool win7OrLater() { return impl::winXyOrLater(6, 1); }
+
+inline
+bool win8OrLater() { return impl::winXyOrLater(6, 2); }
}
#endif //WINDOWS_VERSION_HEADER_238470348254325
diff --git a/zen/zstring.cpp b/zen/zstring.cpp
index 96566638..a1913755 100644
--- a/zen/zstring.cpp
+++ b/zen/zstring.cpp
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "zstring.h"
diff --git a/zen/zstring.h b/zen/zstring.h
index ff38f966..9d93d2d3 100644
--- a/zen/zstring.h
+++ b/zen/zstring.h
@@ -1,7 +1,7 @@
// **************************************************************************
// * 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 *
+// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef ZSTRING_H_INCLUDED
bgstack15