summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorB. Stack <bgstack15@gmail.com>2022-01-04 16:21:19 +0000
committerB. Stack <bgstack15@gmail.com>2022-01-04 16:21:19 +0000
commit2c8ae2c99308b4f0bf2bb08161829efee43e31ca (patch)
treeb8252ff8a09d9143ed2dc299d082f9d86535c1a2
parentMerge branch 'b11.15' into 'master' (diff)
parentadd upstream 11.16 (diff)
downloadFreeFileSync-2c8ae2c99308b4f0bf2bb08161829efee43e31ca.tar.gz
FreeFileSync-2c8ae2c99308b4f0bf2bb08161829efee43e31ca.tar.bz2
FreeFileSync-2c8ae2c99308b4f0bf2bb08161829efee43e31ca.zip
Merge branch 'b11.16' into 'master'11.16
add upstream 11.16 See merge request opensource-tracking/FreeFileSync!40
-rw-r--r--Changelog.txt17
-rw-r--r--FreeFileSync/Build/Resources/Languages.zipbin507742 -> 507775 bytes
-rw-r--r--FreeFileSync/Build/Resources/notify.wavbin55006 -> 54890 bytes
-rw-r--r--FreeFileSync/Source/Makefile2
-rw-r--r--FreeFileSync/Source/RealTimeSync/gui_generated.cpp6
-rw-r--r--FreeFileSync/Source/RealTimeSync/gui_generated.h5
-rw-r--r--FreeFileSync/Source/RealTimeSync/main_dlg.cpp10
-rw-r--r--FreeFileSync/Source/afs/abstract_impl.h146
-rw-r--r--FreeFileSync/Source/afs/ftp.cpp12
-rw-r--r--FreeFileSync/Source/afs/gdrive.cpp88
-rw-r--r--FreeFileSync/Source/afs/init_curl_libssh2.cpp35
-rw-r--r--FreeFileSync/Source/base/dir_lock.cpp2
-rw-r--r--FreeFileSync/Source/config.cpp2
-rw-r--r--FreeFileSync/Source/config.h3
-rw-r--r--FreeFileSync/Source/log_file.cpp4
-rw-r--r--FreeFileSync/Source/ui/abstract_folder_picker.cpp2
-rw-r--r--FreeFileSync/Source/ui/batch_config.cpp2
-rw-r--r--FreeFileSync/Source/ui/batch_status_handler.cpp6
-rw-r--r--FreeFileSync/Source/ui/gui_generated.cpp6797
-rw-r--r--FreeFileSync/Source/ui/gui_generated.h2237
-rw-r--r--FreeFileSync/Source/ui/gui_status_handler.cpp12
-rw-r--r--FreeFileSync/Source/ui/main_dlg.cpp181
-rw-r--r--FreeFileSync/Source/ui/main_dlg.h14
-rw-r--r--FreeFileSync/Source/ui/progress_indicator.cpp8
-rw-r--r--FreeFileSync/Source/ui/progress_indicator.h2
-rw-r--r--FreeFileSync/Source/ui/small_dlgs.cpp47
-rw-r--r--FreeFileSync/Source/ui/sync_cfg.cpp4
-rw-r--r--FreeFileSync/Source/ui/version_check.cpp13
-rw-r--r--FreeFileSync/Source/ui/version_check.h2
-rw-r--r--FreeFileSync/Source/version/version.h2
-rw-r--r--libcurl/curl_wrap.cpp398
-rw-r--r--libcurl/curl_wrap.h158
-rw-r--r--libcurl/rest.cpp208
-rw-r--r--libcurl/rest.h52
-rw-r--r--libssh2/libssh2_wrap.h2
-rw-r--r--wx+/image_tools.cpp5
-rw-r--r--wx+/no_flicker.h8
-rw-r--r--wx+/popup_dlg.cpp16
-rw-r--r--wx+/popup_dlg.h2
-rw-r--r--wx+/popup_dlg_generated.cpp106
-rw-r--r--wx+/popup_dlg_generated.h49
-rw-r--r--wx+/tooltip.cpp6
-rw-r--r--zen/file_access.cpp59
-rw-r--r--zen/http.cpp380
-rw-r--r--zen/http.h12
-rw-r--r--zen/open_ssl.cpp709
-rw-r--r--zen/open_ssl.h17
-rw-r--r--zen/stream_buffer.h161
-rw-r--r--zen/string_base.h6
-rw-r--r--zen/sys_info.cpp27
-rw-r--r--zen/sys_info.h2
-rw-r--r--zen/type_traits.h6
-rw-r--r--zen/zstring.cpp8
-rw-r--r--zen/zstring.h9
54 files changed, 6010 insertions, 6057 deletions
diff --git a/Changelog.txt b/Changelog.txt
index 0e2924dc..563677e4 100644
--- a/Changelog.txt
+++ b/Changelog.txt
@@ -1,9 +1,24 @@
+FreeFileSync 11.16 [2022-01-02]
+-------------------------------
+Allow to select and remove invalid config file
+Migrated all HTTPS requests to use libcurl (Linux, macOS)
+Set keyboard focus on config panel after startup
+Added computer name to log file trailer
+Context menu instead of confirmation dialog for swap sides
+Fixed config selection lost after auto-cleaning obsolete rows
+Install app files with owner set to root (Linux)
+Don't override keyboard shortcut "CTRL + W" (macOS)
+Migrated key conversion routines deprecated in OpenSSL 3.0
+Boxed app icon to fit OS theme (macOS)
+Fixed manual retry after automatic update check error
+Fixed missing ampersands in middle grid tooltip
+
+
FreeFileSync 11.15 [2021-12-03]
-------------------------------
Play sound reminder when waiting for user confirmation
Enhanced crash diagnostics with known triggers
Defer reporting third-party incompatibilities until after crashing
-Support running FreeFileSync from Dokany-based encrypted volumes
Fixed Server 2019 not being detected for log file
Use native representation for modified config (macOS)
Improved WinMerge detection for external app integration
diff --git a/FreeFileSync/Build/Resources/Languages.zip b/FreeFileSync/Build/Resources/Languages.zip
index 9044f9bc..d1c3ce44 100644
--- a/FreeFileSync/Build/Resources/Languages.zip
+++ b/FreeFileSync/Build/Resources/Languages.zip
Binary files differ
diff --git a/FreeFileSync/Build/Resources/notify.wav b/FreeFileSync/Build/Resources/notify.wav
index 7273e2b9..5263e32e 100644
--- a/FreeFileSync/Build/Resources/notify.wav
+++ b/FreeFileSync/Build/Resources/notify.wav
Binary files differ
diff --git a/FreeFileSync/Source/Makefile b/FreeFileSync/Source/Makefile
index 1d422d02..1e203944 100644
--- a/FreeFileSync/Source/Makefile
+++ b/FreeFileSync/Source/Makefile
@@ -77,7 +77,7 @@ cppFiles+=ui/sync_cfg.cpp
cppFiles+=ui/tray_icon.cpp
cppFiles+=ui/triple_splitter.cpp
cppFiles+=ui/version_check.cpp
-cppFiles+=../../libcurl/rest.cpp
+cppFiles+=../../libcurl/curl_wrap.cpp
cppFiles+=../../zen/file_access.cpp
cppFiles+=../../zen/file_io.cpp
cppFiles+=../../zen/file_path.cpp
diff --git a/FreeFileSync/Source/RealTimeSync/gui_generated.cpp b/FreeFileSync/Source/RealTimeSync/gui_generated.cpp
index fbaf1b44..fcb5c6a8 100644
--- a/FreeFileSync/Source/RealTimeSync/gui_generated.cpp
+++ b/FreeFileSync/Source/RealTimeSync/gui_generated.cpp
@@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////
-// C++ code generated with wxFormBuilder (version Oct 26 2018)
+// C++ code generated with wxFormBuilder (version 3.10.1-0-g8feb16b3)
// http://www.wxformbuilder.org/
//
// PLEASE DO *NOT* EDIT THIS FILE!
@@ -61,7 +61,7 @@ MainDlgGenerated::MainDlgGenerated( wxWindow* parent, wxWindowID id, const wxStr
m_staticText9 = new wxStaticText( this, wxID_ANY, _("Usage:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText9->Wrap( -1 );
- m_staticText9->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
+ m_staticText9->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
bSizer16->Add( m_staticText9, 0, wxALL, 5 );
@@ -283,7 +283,7 @@ MainDlgGenerated::MainDlgGenerated( wxWindow* parent, wxWindowID id, const wxStr
m_buttonStart = new zen::BitmapTextButton( this, wxID_OK, _("Start"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
m_buttonStart->SetDefault();
- m_buttonStart->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
+ m_buttonStart->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
bSizerMain->Add( m_buttonStart, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
diff --git a/FreeFileSync/Source/RealTimeSync/gui_generated.h b/FreeFileSync/Source/RealTimeSync/gui_generated.h
index 297b6291..47514409 100644
--- a/FreeFileSync/Source/RealTimeSync/gui_generated.h
+++ b/FreeFileSync/Source/RealTimeSync/gui_generated.h
@@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////
-// C++ code generated with wxFormBuilder (version Oct 26 2018)
+// C++ code generated with wxFormBuilder (version 3.10.1-0-g8feb16b3)
// http://www.wxformbuilder.org/
//
// PLEASE DO *NOT* EDIT THIS FILE!
@@ -87,7 +87,7 @@ protected:
wxStaticLine* m_staticline5;
zen::BitmapTextButton* m_buttonStart;
- // Virtual event handlers, overide them in your derived class
+ // Virtual event handlers, override 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(); }
@@ -123,6 +123,7 @@ public:
wxTextCtrl* m_txtCtrlDirectory;
FolderGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1, -1 ), long style = 0, const wxString& name = wxEmptyString );
+
~FolderGenerated();
};
diff --git a/FreeFileSync/Source/RealTimeSync/main_dlg.cpp b/FreeFileSync/Source/RealTimeSync/main_dlg.cpp
index dc7238bf..46c79ec0 100644
--- a/FreeFileSync/Source/RealTimeSync/main_dlg.cpp
+++ b/FreeFileSync/Source/RealTimeSync/main_dlg.cpp
@@ -91,7 +91,7 @@ MainDialog::MainDialog(const Zstring& cfgFileName) :
m_bpButtonAddFolder ->SetBitmapLabel(loadImage("item_add"));
m_bpButtonRemoveTopFolder->SetBitmapLabel(loadImage("item_remove"));
- setBitmapTextLabel(*m_buttonStart, loadImage("startRts"), m_buttonStart->GetLabel(), fastFromDIP(5), fastFromDIP(8));
+ setBitmapTextLabel(*m_buttonStart, loadImage("startRts"), m_buttonStart->GetLabelText(), fastFromDIP(5), fastFromDIP(8));
Bind(wxEVT_CHAR_HOOK, [this](wxKeyEvent& event) { onLocalKeyEvent(event); });
@@ -201,11 +201,11 @@ void MainDialog::onMenuAbout(wxCommandEvent& event)
void MainDialog::onLocalKeyEvent(wxKeyEvent& event)
{
- const int keyCode = event.GetKeyCode();
- if (keyCode == WXK_ESCAPE)
+ switch (event.GetKeyCode())
{
- Close();
- return;
+ case WXK_ESCAPE:
+ Close();
+ return;
}
event.Skip();
}
diff --git a/FreeFileSync/Source/afs/abstract_impl.h b/FreeFileSync/Source/afs/abstract_impl.h
index 4ecc2614..95f21301 100644
--- a/FreeFileSync/Source/afs/abstract_impl.h
+++ b/FreeFileSync/Source/afs/abstract_impl.h
@@ -9,7 +9,7 @@
#include "abstract.h"
#include <zen/thread.h>
-#include <zen/ring_buffer.h>
+#include <zen/stream_buffer.h>
namespace fff
@@ -56,150 +56,6 @@ bool tryReportingItemError(Command cmd, AbstractFileSystem::TraverserCallback& c
}
}
}
-//==========================================================================================
-
-/* implement streaming API on top of libcurl's icky callback-based design
- => support copying arbitrarily-large files: https://freefilesync.org/forum/viewtopic.php?t=4471
- => maximum performance through async processing (prefetching + output buffer!)
- => cost per worker thread creation ~ 1/20 ms */
-class AsyncStreamBuffer
-{
-public:
- AsyncStreamBuffer(size_t bufferSize) : bufSize_(bufferSize) { ringBuf_.reserve(bufferSize); }
-
- //context of input thread, blocking
- //return "bytesToRead" bytes unless end of stream!
- size_t read(void* buffer, size_t bytesToRead) //throw <write error>
- {
- if (bytesToRead == 0) //"read() with a count of 0 returns zero" => indistinguishable from end of file! => check!
- throw std::logic_error("Contract violation! " + std::string(__FILE__) + ':' + zen::numberTo<std::string>(__LINE__));
-
- auto it = static_cast<std::byte*>(buffer);
- const auto itEnd = it + bytesToRead;
-
- for (std::unique_lock dummy(lockStream_); it != itEnd;)
- {
- assert(!errorRead_);
- conditionBytesWritten_.wait(dummy, [this] { return errorWrite_ || !ringBuf_.empty() || eof_; });
-
- if (errorWrite_)
- std::rethrow_exception(errorWrite_); //throw <write error>
-
- const size_t junkSize = std::min(static_cast<size_t>(itEnd - it), ringBuf_.size());
- ringBuf_.extract_front(it, it + junkSize);
- it += junkSize;
-
- conditionBytesRead_.notify_all();
-
- if (eof_) //end of file
- break;
- }
-
- const size_t bytesRead = it - static_cast<std::byte*>(buffer);
- totalBytesRead_ += bytesRead;
- return bytesRead;
- }
-
- //context of output thread, blocking
- void write(const void* buffer, size_t bytesToWrite) //throw <read error>
- {
- totalBytesWritten_ += bytesToWrite; //bytes already processed as far as raw FTP access is concerned
-
- auto it = static_cast<const std::byte*>(buffer);
- const auto itEnd = it + bytesToWrite;
-
- for (std::unique_lock dummy(lockStream_); it != itEnd;)
- {
- assert(!eof_ && !errorWrite_);
- /* => can't use InterruptibleThread's interruptibleWait() :(
- -> AsyncStreamBuffer is used for input and output streaming
- => both AsyncStreamBuffer::write()/read() would have to implement interruptibleWait()
- => one of these usually called from main thread
- => but interruptibleWait() cannot be called from main thread! */
- conditionBytesRead_.wait(dummy, [this] { return errorRead_ || ringBuf_.size() < bufSize_; });
-
- if (errorRead_)
- std::rethrow_exception(errorRead_); //throw <read error>
-
- const size_t junkSize = std::min(static_cast<size_t>(itEnd - it), bufSize_ - ringBuf_.size());
- ringBuf_.insert_back(it, it + junkSize);
- it += junkSize;
-
- conditionBytesWritten_.notify_all();
- }
- }
-
- //context of output thread
- void closeStream()
- {
- {
- std::lock_guard dummy(lockStream_);
- assert(!eof_ && !errorWrite_);
- eof_ = true;
- }
- conditionBytesWritten_.notify_all();
- }
-
- //context of input thread
- void setReadError(const std::exception_ptr& error)
- {
- {
- std::lock_guard dummy(lockStream_);
- assert(!errorRead_);
- if (!errorRead_)
- errorRead_ = error;
- }
- conditionBytesRead_.notify_all();
- }
-
- //context of output thread
- void setWriteError(const std::exception_ptr& error)
- {
- {
- std::lock_guard dummy(lockStream_);
- assert(!errorWrite_);
- if (!errorWrite_)
- errorWrite_ = error;
- }
- conditionBytesWritten_.notify_all();
- }
-
- //context of *output* thread
- void checkReadErrors() //throw <read error>
- {
- std::lock_guard dummy(lockStream_);
- if (errorRead_)
- std::rethrow_exception(errorRead_); //throw <read error>
- }
-
-#if 0 //function not needed: when EOF is reached (without errors), reading is done => no further error can occur!
- void checkWriteErrors() //throw <write error>
- {
- std::lock_guard dummy(lockStream_);
- if (errorWrite_)
- std::rethrow_exception(errorWrite_); //throw <write error>
- }
-#endif
-
- uint64_t getTotalBytesWritten() const { return totalBytesWritten_; }
- uint64_t getTotalBytesRead () const { return totalBytesRead_; }
-
-private:
- AsyncStreamBuffer (const AsyncStreamBuffer&) = delete;
- AsyncStreamBuffer& operator=(const AsyncStreamBuffer&) = delete;
-
- const size_t bufSize_;
- std::mutex lockStream_;
- zen::RingBuffer<std::byte> ringBuf_; //prefetch/output buffer
- bool eof_ = false;
- std::exception_ptr errorWrite_;
- std::exception_ptr errorRead_;
- std::condition_variable conditionBytesWritten_;
- std::condition_variable conditionBytesRead_;
-
- std::atomic<uint64_t> totalBytesWritten_{0}; //std:atomic is uninitialized by default!
- std::atomic<uint64_t> totalBytesRead_ {0}; //
-};
//==========================================================================================
diff --git a/FreeFileSync/Source/afs/ftp.cpp b/FreeFileSync/Source/afs/ftp.cpp
index ce5aaa02..3241d22a 100644
--- a/FreeFileSync/Source/afs/ftp.cpp
+++ b/FreeFileSync/Source/afs/ftp.cpp
@@ -334,13 +334,13 @@ public:
if (sessionId_.port > 0)
options.emplace_back(CURLOPT_PORT, static_cast<long>(sessionId_.port));
- options.emplace_back(CURLOPT_NOSIGNAL, 1L); //thread-safety: https://curl.haxx.se/libcurl/c/threadsafe.html
+ options.emplace_back(CURLOPT_NOSIGNAL, 1); //thread-safety: https://curl.haxx.se/libcurl/c/threadsafe.html
options.emplace_back(CURLOPT_CONNECTTIMEOUT, timeoutSec);
//CURLOPT_TIMEOUT: "Since this puts a hard limit for how long time a request is allowed to take, it has limited use in dynamic use cases with varying transfer times."
options.emplace_back(CURLOPT_LOW_SPEED_TIME, timeoutSec);
- options.emplace_back(CURLOPT_LOW_SPEED_LIMIT, 1L); //[bytes], can't use "0" which means "inactive", so use some low number
+ options.emplace_back(CURLOPT_LOW_SPEED_LIMIT, 1); //[bytes], can't use "0" which means "inactive", so use some low number
//unlike CURLOPT_TIMEOUT, this one is NOT a limit on the total transfer time
options.emplace_back(CURLOPT_FTP_RESPONSE_TIMEOUT, timeoutSec); //== alias of CURLOPT_SERVER_RESPONSE_TIMEOUT
@@ -348,7 +348,7 @@ public:
//CURLOPT_ACCEPTTIMEOUT_MS? => only relevant for "active" FTP connections
//long-running file uploads require us to send keep-alives for the TCP control connection: https://freefilesync.org/forum/viewtopic.php?t=6928
- options.emplace_back(CURLOPT_TCP_KEEPALIVE, 1L);
+ options.emplace_back(CURLOPT_TCP_KEEPALIVE, 1);
std::optional<SysError> callbackException;
@@ -445,14 +445,14 @@ public:
options.emplace_back(CURLOPT_CAINFO, "cacert.pem"); //hopefully latest version from https://curl.haxx.se/docs/caextract.html
//libcurl forwards this char-string to OpenSSL as is, which (thank god) accepts UTF8
#else
- options.emplace_back(CURLOPT_CAINFO, 0L); //be explicit: "even when [CURLOPT_SSL_VERIFYPEER] is disabled [...] curl may still load the certificate file specified in CURLOPT_CAINFO."
+ options.emplace_back(CURLOPT_CAINFO, 0); //be explicit: "even when [CURLOPT_SSL_VERIFYPEER] is disabled [...] curl may still load the certificate file specified in CURLOPT_CAINFO."
//check if server certificate can be trusted? (Default: 1L)
// => may fail with: "CURLE_PEER_FAILED_VERIFICATION: SSL certificate problem: certificate has expired"
- options.emplace_back(CURLOPT_SSL_VERIFYPEER, 0L);
+ options.emplace_back(CURLOPT_SSL_VERIFYPEER, 0);
//check that server name matches the name in the certificate? (Default: 2L)
// => may fail with: "CURLE_PEER_FAILED_VERIFICATION: SSL: no alternative certificate subject name matches target host name 'freefilesync.org'"
- options.emplace_back(CURLOPT_SSL_VERIFYHOST, 0L);
+ options.emplace_back(CURLOPT_SSL_VERIFYHOST, 0);
#endif
if (sessionId_.useTls) //https://tools.ietf.org/html/rfc4217
{
diff --git a/FreeFileSync/Source/afs/gdrive.cpp b/FreeFileSync/Source/afs/gdrive.cpp
index f6a9424c..9594919e 100644
--- a/FreeFileSync/Source/afs/gdrive.cpp
+++ b/FreeFileSync/Source/afs/gdrive.cpp
@@ -8,7 +8,7 @@
#include <variant>
#include <unordered_set> //needed by clang
#include <unordered_map> //
-#include <libcurl/rest.h>
+#include <libcurl/curl_wrap.h> //DON'T include <curl/curl.h> directly!
#include <zen/basic_math.h>
#include <zen/base64.h>
#include <zen/crc.h>
@@ -232,7 +232,7 @@ private:
struct HttpInitSession
{
HttpInitSession(std::shared_ptr<UniCounterCookie> cook, const Zstring& server, const Zstring& caCertFilePath) :
- cookie(std::move(cook)), session(server, caCertFilePath, HTTP_SESSION_ACCESS_TIME_OUT) {}
+ cookie(std::move(cook)), session(server, true /*useTls*/, caCertFilePath, HTTP_SESSION_ACCESS_TIME_OUT) {}
std::shared_ptr<UniCounterCookie> cookie;
HttpSession session; //life time must be subset of UniCounterCookie
@@ -309,11 +309,12 @@ constinit Global<HttpSessionManager> globalHttpSessionManager; //caveat: life ti
//===========================================================================================================================
//try to get a grip on this crazy REST API: - parameters are passed via query string, header, or body, using GET, POST, PUT, PATCH, DELETE, ... it's a dice roll
-HttpSession::Result gdriveHttpsRequest(const std::string& serverRelPath, //throw SysError
+HttpSession::Result gdriveHttpsRequest(const std::string& serverRelPath, //throw SysError, X
const std::vector<std::string>& extraHeaders,
const std::vector<CurlOption>& extraOptions,
- const std::function<void (const void* buffer, size_t bytesToWrite)>& writeResponse /*throw X*/, //optional
- const std::function<size_t( void* buffer, size_t bytesToRead )>& readRequest /*throw X*/) //optional; returning 0 signals EOF
+ const std::function<void (std::span<const char> buf)>& writeResponse /*throw X*/, //optional
+ const std::function<size_t(std::span< char> buf)>& readRequest /*throw X*/, //optional; returning 0 signals EOF
+ const std::function<void (const std::string_view& header)>& receiveHeader /*throw X*/) //optional
{
const std::shared_ptr<HttpSessionManager> mgr = globalHttpSessionManager.get();
if (!mgr)
@@ -331,7 +332,7 @@ HttpSession::Result gdriveHttpsRequest(const std::string& serverRelPath, //throw
};
append(options, extraOptions);
- httpResult = session.perform(serverRelPath, extraHeaders, options, writeResponse, readRequest); //throw SysError
+ httpResult = session.perform(serverRelPath, extraHeaders, options, writeResponse, readRequest, receiveHeader); //throw SysError, X
});
return httpResult;
}
@@ -352,7 +353,7 @@ GdriveUser getGdriveUser(const std::string& accessToken) //throw SysError
});
std::string response;
gdriveHttpsRequest("/drive/v3/about?" + queryParams, {"Authorization: Bearer " + accessToken}, {} /*extraOptions*/, //throw SysError
- [&](const void* buffer, size_t bytesToWrite) { response.append(static_cast<const char*>(buffer), bytesToWrite); }, nullptr /*readRequest*/);
+ [&](std::span<const char> buf) { response.append(buf.data(), buf.size()); }, nullptr /*readRequest*/, nullptr /*receiveHeader*/);
JsonValue jresponse;
try { jresponse = parseJson(response); }
@@ -403,8 +404,8 @@ GdriveAccessInfo gdriveExchangeAuthCode(const GdriveAuthCode& authCode) //throw
{"code_verifier", authCode.codeChallenge},
});
std::string response;
- gdriveHttpsRequest("/oauth2/v4/token", {} /*extraHeaders*/, {{ CURLOPT_POSTFIELDS, postBuf.c_str()}}, //throw SysError
- [&](const void* buffer, size_t bytesToWrite) { response.append(static_cast<const char*>(buffer), bytesToWrite); }, nullptr /*readRequest*/);
+ gdriveHttpsRequest("/oauth2/v4/token", {} /*extraHeaders*/, {{CURLOPT_POSTFIELDS, postBuf.c_str()}}, //throw SysError
+ [&](std::span<const char> buf) { response.append(buf.data(), buf.size()); }, nullptr /*readRequest*/, nullptr /*receiveHeader*/);
JsonValue jresponse;
try { jresponse = parseJson(response); }
@@ -665,10 +666,9 @@ GdriveAccessToken gdriveRefreshAccess(const std::string& refreshToken) //throw S
{"client_secret", getGdriveClientSecret()},
{"grant_type", "refresh_token"},
});
-
std::string response;
gdriveHttpsRequest("/oauth2/v4/token", {} /*extraHeaders*/, {{CURLOPT_POSTFIELDS, postBuf.c_str()}}, //throw SysError
- [&](const void* buffer, size_t bytesToWrite) { response.append(static_cast<const char*>(buffer), bytesToWrite); }, nullptr /*readRequest*/);
+ [&](std::span<const char> buf) { response.append(buf.data(), buf.size()); }, nullptr /*readRequest*/, nullptr /*receiveHeader*/);
JsonValue jresponse;
try { jresponse = parseJson(response); }
@@ -696,7 +696,7 @@ void gdriveRevokeAccess(const std::string& accessToken) //throw SysError
mgr->access(HttpSessionId(Zstr("accounts.google.com")), [&](HttpSession& session) //throw SysError
{
httpResult = session.perform("/o/oauth2/revoke?token=" + accessToken, {"Content-Type: application/x-www-form-urlencoded"}, {} /*extraOptions*/,
- [&](const void* buffer, size_t bytesToWrite) { response.append(static_cast<const char*>(buffer), bytesToWrite); }, nullptr /*readRequest*/); //throw SysError
+ [&](std::span<const char> buf) { response.append(buf.data(), buf.size()); }, nullptr /*readRequest*/, nullptr /*receiveHeader*/); //throw SysError
});
if (httpResult.statusCode != 200)
@@ -709,7 +709,7 @@ int64_t gdriveGetMyDriveFreeSpace(const std::string& accessToken) //throw SysErr
//https://developers.google.com/drive/api/v3/reference/about
std::string response;
gdriveHttpsRequest("/drive/v3/about?fields=storageQuota", {"Authorization: Bearer " + accessToken}, {} /*extraOptions*/, //throw SysError
- [&](const void* buffer, size_t bytesToWrite) { response.append(static_cast<const char*>(buffer), bytesToWrite); }, nullptr /*readRequest*/);
+ [&](std::span<const char> buf) { response.append(buf.data(), buf.size()); }, nullptr /*readRequest*/, nullptr /*receiveHeader*/);
JsonValue jresponse;
try { jresponse = parseJson(response); }
@@ -758,7 +758,7 @@ std::vector<DriveDetails> getSharedDrives(const std::string& accessToken) //thro
std::string response;
gdriveHttpsRequest("/drive/v3/drives?" + queryParams, {"Authorization: Bearer " + accessToken}, {} /*extraOptions*/, //throw SysError
- [&](const void* buffer, size_t bytesToWrite) { response.append(static_cast<const char*>(buffer), bytesToWrite); }, nullptr /*readRequest*/);
+ [&](std::span<const char> buf) { response.append(buf.data(), buf.size()); }, nullptr /*readRequest*/, nullptr /*receiveHeader*/);
JsonValue jresponse;
try { jresponse = parseJson(response); }
@@ -881,7 +881,7 @@ GdriveItemDetails getItemDetails(const std::string& itemId, const std::string& a
});
std::string response;
gdriveHttpsRequest("/drive/v3/files/" + itemId + '?' + queryParams, {"Authorization: Bearer " + accessToken}, {} /*extraOptions*/, //throw SysError
- [&](const void* buffer, size_t bytesToWrite) { response.append(static_cast<const char*>(buffer), bytesToWrite); }, nullptr /*readRequest*/);
+ [&](std::span<const char> buf) { response.append(buf.data(), buf.size()); }, nullptr /*readRequest*/, nullptr /*receiveHeader*/);
try
{
const JsonValue jvalue = parseJson(response); //throw JsonParsingError
@@ -927,7 +927,7 @@ std::vector<GdriveItem> readFolderContent(const std::string& folderId, const std
std::string response;
gdriveHttpsRequest("/drive/v3/files?" + queryParams, {"Authorization: Bearer " + accessToken}, {} /*extraOptions*/, //throw SysError
- [&](const void* buffer, size_t bytesToWrite) { response.append(static_cast<const char*>(buffer), bytesToWrite); }, nullptr /*readRequest*/);
+ [&](std::span<const char> buf) { response.append(buf.data(), buf.size()); }, nullptr /*readRequest*/, nullptr /*receiveHeader*/);
JsonValue jresponse;
try { jresponse = parseJson(response); }
@@ -997,7 +997,7 @@ ChangesDelta getChangesDelta(const std::string& sharedDriveId /*empty for "My Dr
std::string response;
gdriveHttpsRequest("/drive/v3/changes?" + queryParams, {"Authorization: Bearer " + accessToken}, {} /*extraOptions*/, //throw SysError
- [&](const void* buffer, size_t bytesToWrite) { response.append(static_cast<const char*>(buffer), bytesToWrite); }, nullptr /*readRequest*/);
+ [&](std::span<const char> buf) { response.append(buf.data(), buf.size()); }, nullptr /*readRequest*/, nullptr /*receiveHeader*/);
JsonValue jresponse;
try { jresponse = parseJson(response); }
@@ -1090,7 +1090,7 @@ std::string /*startPageToken*/ getChangesCurrentToken(const std::string& sharedD
std::string response;
gdriveHttpsRequest("/drive/v3/changes/startPageToken?" + queryParams, {"Authorization: Bearer " + accessToken}, {} /*extraOptions*/, //throw SysError
- [&](const void* buffer, size_t bytesToWrite) { response.append(static_cast<const char*>(buffer), bytesToWrite); }, nullptr /*readRequest*/);
+ [&](std::span<const char> buf) { response.append(buf.data(), buf.size()); }, nullptr /*readRequest*/, nullptr /*receiveHeader*/);
JsonValue jresponse;
try { jresponse = parseJson(response); }
@@ -1115,7 +1115,7 @@ void gdriveDeleteItem(const std::string& itemId, const std::string& accessToken)
});
std::string response;
const HttpSession::Result httpResult = gdriveHttpsRequest("/drive/v3/files/" + itemId + '?' + queryParams, {"Authorization: Bearer " + accessToken}, //throw SysError
- {{CURLOPT_CUSTOMREQUEST, "DELETE"}}, [&](const void* buffer, size_t bytesToWrite) { response.append(static_cast<const char*>(buffer), bytesToWrite); }, nullptr /*readRequest*/);
+ {{CURLOPT_CUSTOMREQUEST, "DELETE"}}, [&](std::span<const char> buf) { response.append(buf.data(), buf.size()); }, nullptr /*readRequest*/, nullptr /*receiveHeader*/);
if (response.empty() && httpResult.statusCode == 204)
return; //"If successful, this method returns an empty response body"
@@ -1137,8 +1137,8 @@ void gdriveUnlinkParent(const std::string& itemId, const std::string& parentId,
std::string response;
const HttpSession::Result httpResult = gdriveHttpsRequest("/drive/v3/files/" + itemId + '?' + queryParams, //throw SysError
{"Authorization: Bearer " + accessToken, "Content-Type: application/json; charset=UTF-8"},
- {{ CURLOPT_CUSTOMREQUEST, "PATCH"}, { CURLOPT_POSTFIELDS, "{}"}},
- [&](const void* buffer, size_t bytesToWrite) { response.append(static_cast<const char*>(buffer), bytesToWrite); }, nullptr /*readRequest*/);
+ {{CURLOPT_CUSTOMREQUEST, "PATCH"}, { CURLOPT_POSTFIELDS, "{}"}},
+ [&](std::span<const char> buf) { response.append(buf.data(), buf.size()); }, nullptr /*readRequest*/, nullptr /*receiveHeader*/);
if (response.empty() && httpResult.statusCode == 204)
return; //removing last parent of item not owned by us returns "204 No Content" (instead of 200 + file body)
@@ -1175,7 +1175,7 @@ void gdriveMoveToTrash(const std::string& itemId, const std::string& accessToken
std::string response;
gdriveHttpsRequest("/drive/v3/files/" + itemId + '?' + queryParams, {"Authorization: Bearer " + accessToken, "Content-Type: application/json; charset=UTF-8"}, //throw SysError
{{CURLOPT_CUSTOMREQUEST, "PATCH"}, {CURLOPT_POSTFIELDS, postBuf.c_str()}},
- [&](const void* buffer, size_t bytesToWrite) { response.append(static_cast<const char*>(buffer), bytesToWrite); }, nullptr /*readRequest*/);
+ [&](std::span<const char> buf) { response.append(buf.data(), buf.size()); }, nullptr /*readRequest*/, nullptr /*receiveHeader*/);
JsonValue jresponse;
try { jresponse = parseJson(response); /*throw JsonParsingError*/ }
@@ -1205,7 +1205,7 @@ std::string /*folderId*/ gdriveCreateFolderPlain(const Zstring& folderName, cons
std::string response;
gdriveHttpsRequest("/drive/v3/files?" + queryParams, {"Authorization: Bearer " + accessToken, "Content-Type: application/json; charset=UTF-8"},
{{CURLOPT_POSTFIELDS, postBuf.c_str()}},
- [&](const void* buffer, size_t bytesToWrite) { response.append(static_cast<const char*>(buffer), bytesToWrite); }, nullptr /*readRequest*/); //throw SysError
+ [&](std::span<const char> buf) { response.append(buf.data(), buf.size()); }, nullptr /*readRequest*/, nullptr /*receiveHeader*/); //throw SysError
JsonValue jresponse;
try { jresponse = parseJson(response); }
@@ -1242,7 +1242,7 @@ std::string /*shortcutId*/ gdriveCreateShortcutPlain(const Zstring& shortcutName
std::string response;
gdriveHttpsRequest("/drive/v3/files?" + queryParams, {"Authorization: Bearer " + accessToken, "Content-Type: application/json; charset=UTF-8"},
{{CURLOPT_POSTFIELDS, postBuf.c_str()}},
- [&](const void* buffer, size_t bytesToWrite) { response.append(static_cast<const char*>(buffer), bytesToWrite); }, nullptr /*readRequest*/); //throw SysError
+ [&](std::span<const char> buf) { response.append(buf.data(), buf.size()); }, nullptr /*readRequest*/, nullptr /*receiveHeader*/); //throw SysError
JsonValue jresponse;
try { jresponse = parseJson(response); }
@@ -1282,7 +1282,7 @@ std::string /*fileId*/ gdriveCopyFile(const std::string& fileId, const std::stri
std::string response;
gdriveHttpsRequest("/drive/v3/files/" + fileId + "/copy?" + queryParams, //throw SysError
{"Authorization: Bearer " + accessToken, "Content-Type: application/json; charset=UTF-8"}, {{CURLOPT_POSTFIELDS, postBuf.c_str()}},
- [&](const void* buffer, size_t bytesToWrite) { response.append(static_cast<const char*>(buffer), bytesToWrite); }, nullptr /*readRequest*/);
+ [&](std::span<const char> buf) { response.append(buf.data(), buf.size()); }, nullptr /*readRequest*/, nullptr /*receiveHeader*/);
JsonValue jresponse;
try { jresponse = parseJson(response); /*throw JsonParsingError*/ }
@@ -1331,7 +1331,7 @@ void gdriveMoveAndRenameItem(const std::string& itemId, const std::string& paren
gdriveHttpsRequest("/drive/v3/files/" + itemId + '?' + queryParams, //throw SysError
{"Authorization: Bearer " + accessToken, "Content-Type: application/json; charset=UTF-8"},
{{CURLOPT_CUSTOMREQUEST, "PATCH"}, {CURLOPT_POSTFIELDS, postBuf.c_str()}},
- [&](const void* buffer, size_t bytesToWrite) { response.append(static_cast<const char*>(buffer), bytesToWrite); }, nullptr /*readRequest*/);
+ [&](std::span<const char> buf) { response.append(buf.data(), buf.size()); }, nullptr /*readRequest*/, nullptr /*receiveHeader*/);
JsonValue jresponse;
try { jresponse = parseJson(response); /*throw JsonParsingError*/ }
@@ -1368,7 +1368,7 @@ void setModTime(const std::string& itemId, time_t modTime, const std::string& ac
std::string response;
gdriveHttpsRequest("/drive/v3/files/" + itemId + '?' + queryParams, {"Authorization: Bearer " + accessToken, "Content-Type: application/json; charset=UTF-8"}, //throw SysError
{{CURLOPT_CUSTOMREQUEST, "PATCH"}, {CURLOPT_POSTFIELDS, postBuf.c_str()}},
- [&](const void* buffer, size_t bytesToWrite) { response.append(static_cast<const char*>(buffer), bytesToWrite); }, nullptr /*readRequest*/);
+ [&](std::span<const char> buf) { response.append(buf.data(), buf.size()); }, nullptr /*readRequest*/, nullptr /*receiveHeader*/);
JsonValue jresponse;
try { jresponse = parseJson(response); /*throw JsonParsingError*/ }
@@ -1403,10 +1403,10 @@ void gdriveDownloadFileImpl(const std::string& fileId, const std::function<void(
const HttpSession::Result httpResult = gdriveHttpsRequest("/drive/v3/files/" + fileId + '?' + queryParams, //throw SysError, X
{"Authorization: Bearer " + accessToken}, {} /*extraOptions*/,
- [&](const void* buffer, size_t bytesToWrite)
+ [&](std::span<const char> buf)
{
if (responseHead.size() < 10000) //don't access writeBlock() in case of error! (=> support acknowledgeAbuse retry handling)
- responseHead.append(static_cast<const char*>(buffer), bytesToWrite);
+ responseHead.append(buf.data(), buf.size());
else
{
if (!headFlushed)
@@ -1415,9 +1415,9 @@ void gdriveDownloadFileImpl(const std::string& fileId, const std::function<void(
writeBlock(responseHead.c_str(), responseHead.size()); //throw X
}
- writeBlock(buffer, bytesToWrite); //throw X
+ writeBlock(buf.data(), buf.size()); //throw X
}
- }, nullptr /*readRequest*/);
+ }, nullptr /*readRequest*/, nullptr /*receiveHeader*/);
if (httpResult.statusCode / 100 != 2)
{
@@ -1542,7 +1542,7 @@ TODO:
"Content-Length: " + numberTo<std::string>(postBufHead.size() + streamSize + postBufTail.size())
},
{{CURLOPT_POST, 1}}, //otherwise HttpSession::perform() will PUT
- [&](const void* buffer, size_t bytesToWrite) { response.append(static_cast<const char*>(buffer), bytesToWrite); }, readMultipartBlock );
+ [&](std::span<const char> buf) { response.append(buf.data(), buf.size()); }, readMultipartBlock, nullptr /*receiveHeader*/);
JsonValue jresponse;
try { jresponse = parseJson(response); }
@@ -1590,30 +1590,22 @@ std::string /*itemId*/ gdriveUploadFile(const Zstring& fileName, const std::stri
std::string uploadUrl;
- auto onBytesReceived = [&](const char* buffer, size_t len)
+ auto onHeaderData = [&](const std::string_view& header)
{
- //inside libcurl's C callstack => better not throw exceptions here!!!
//"The callback will be called once for each header and only complete header lines are passed on to the callback" (including \r\n at the end)
- if (startsWithAsciiNoCase(std::string_view(buffer, len), "Location:"))
+ if (startsWithAsciiNoCase(header, "Location:"))
{
- uploadUrl.assign(buffer, len); //not null-terminated!
+ uploadUrl = header;
uploadUrl = afterFirst(uploadUrl, ':', IfNotFoundReturn::none);
trim(uploadUrl);
}
- return len;
- };
- using ReadCbType = decltype(onBytesReceived);
- using ReadCbWrapperType = size_t (*)(const char* buffer, size_t size, size_t nitems, ReadCbType* callbackData); //needed for cdecl function pointer cast
- ReadCbWrapperType onBytesReceivedWrapper = [](const char* buffer, size_t size, size_t nitems, ReadCbType* callbackData)
- {
- return (*callbackData)(buffer, size * nitems); //free this poor little C-API from its shackles and redirect to a proper lambda
};
std::string response;
const HttpSession::Result httpResult = gdriveHttpsRequest("/upload/drive/v3/files?" + queryParams, //throw SysError
{"Authorization: Bearer " + accessToken, "Content-Type: application/json; charset=UTF-8"},
- {{CURLOPT_POSTFIELDS, postBuf.c_str()}, {CURLOPT_HEADERDATA, &onBytesReceived}, {CURLOPT_HEADERFUNCTION, onBytesReceivedWrapper}},
- [&](const void* buffer, size_t bytesToWrite) { response.append(static_cast<const char*>(buffer), bytesToWrite); }, nullptr /*readRequest*/);
+ {{CURLOPT_POSTFIELDS, postBuf.c_str()}},
+ [&](std::span<const char> buf) { response.append(buf.data(), buf.size()); }, nullptr /*readRequest*/, onHeaderData);
if (httpResult.statusCode != 200)
throw SysError(formatGdriveErrorRaw(response));
@@ -1629,12 +1621,12 @@ std::string /*itemId*/ gdriveUploadFile(const Zstring& fileName, const std::stri
//not officially documented, but Google Drive supports compressed file upload when "Content-Encoding: gzip" is set! :)))
InputStreamAsGzip gzipStream(readBlock); //throw SysError
- auto readBlockAsGzip = [&](void* buffer, size_t bytesToRead) { return gzipStream.read(buffer, bytesToRead); }; //throw SysError, X
+ auto readBlockAsGzip = [&](std::span<char> buf) { return gzipStream.read(buf.data(), buf.size()); }; //throw SysError, X
//returns "bytesToRead" bytes unless end of stream! => fits into "0 signals EOF: Posix read() semantics"
std::string response;
gdriveHttpsRequest(uploadUrlRelative, { "Content-Encoding: gzip" }, {} /*extraOptions*/, //throw SysError, X
- [&](const void* buffer, size_t bytesToWrite) { response.append(static_cast<const char*>(buffer), bytesToWrite); }, readBlockAsGzip);
+ [&](std::span<const char> buf) { response.append(buf.data(), buf.size()); }, readBlockAsGzip, nullptr /*receiveHeader*/);
JsonValue jresponse;
try { jresponse = parseJson(response); }
@@ -1659,7 +1651,7 @@ std::string /*itemId*/ getMyDriveId(const std::string& accessToken) //throw SysE
});
std::string response;
gdriveHttpsRequest("/drive/v3/files/root?" + queryParams, {"Authorization: Bearer " + accessToken}, {} /*extraOptions*/, //throw SysError
- [&](const void* buffer, size_t bytesToWrite) { response.append(static_cast<const char*>(buffer), bytesToWrite); }, nullptr /*readRequest*/);
+ [&](std::span<const char> buf) { response.append(buf.data(), buf.size()); }, nullptr /*readRequest*/, nullptr /*receiveHeader*/);
JsonValue jresponse;
try { jresponse = parseJson(response); }
diff --git a/FreeFileSync/Source/afs/init_curl_libssh2.cpp b/FreeFileSync/Source/afs/init_curl_libssh2.cpp
index 11f5e502..3c8badfe 100644
--- a/FreeFileSync/Source/afs/init_curl_libssh2.cpp
+++ b/FreeFileSync/Source/afs/init_curl_libssh2.cpp
@@ -5,60 +5,47 @@
// *****************************************************************************
#include "init_curl_libssh2.h"
-#include <cassert>
#include <zen/thread.h>
-#include <zen/file_error.h>
-#include <libcurl/curl_wrap.h> //DON'T include <curl/curl.h> directly!
-#include <zen/open_ssl.h>
-#include "libssh2/libssh2_wrap.h" //DON'T include <libssh2_sftp.h> directly!
-
+#include <libcurl/curl_wrap.h> //DON'T include <curl/curl.h> directly!
+#include <libssh2/libssh2_wrap.h> //DON'T include <libssh2_sftp.h> directly!
using namespace zen;
namespace
{
-int uniInitLevel = 0; //support interleaving initialization calls! (e.g. use for libssh2 and libCurl)
+int uniInitLevel = 0; //support interleaving initialization calls! (e.g. use for libssh2 and libcurl)
//zero-initialized POD => not subject to static initialization order fiasco
void libsshCurlUnifiedInit()
{
- assert(runningOnMainThread()); //all OpenSSL/libssh2/libcurl require init on main thread!
+ assert(runningOnMainThread());
assert(uniInitLevel >= 0);
- if (++uniInitLevel != 1) //non-atomic => also require call from main thread
+ if (++uniInitLevel != 1) //non-atomic => require call from main thread
return;
-
- openSslInit();
+ libcurlInit(); //includes WSAStartup() also needed by libssh2
[[maybe_unused]] const int rc2 = ::libssh2_init(0);
- /*
- we need libssh2's crypto init:
+ assert(rc2 == 0); //libssh2 unconditionally returns 0 => why then have a return value in first place???
+ /* we need libssh2's crypto init:
- there is other OpenSSL-related initialization which might be needed (and hopefully won't hurt...)
2019-02-26: following reasons are obsolete due to HAVE_EVP_AES_128_CTR:
// - initializes a few statically allocated constants => avoid (minor) race condition if these were initialized by worker threads
- // - enable proper clean up of these variables in libssh2_exit() (otherwise: memory leaks!)
- */
- assert(rc2 == 0); //libssh2 unconditionally returns 0 => why then have a return value in first place???
-
-
- [[maybe_unused]] const CURLcode rc3 = ::curl_global_init(CURL_GLOBAL_NOTHING /*CURL_GLOBAL_DEFAULT = CURL_GLOBAL_SSL|CURL_GLOBAL_WIN32*/);
- assert(rc3 == CURLE_OK);
+ // - enable proper clean up of these variables in libssh2_exit() (otherwise: memory leaks!) */
}
void libsshCurlUnifiedTearDown()
{
- assert(runningOnMainThread()); //symmetry with libsshCurlUnifiedInit
+ assert(runningOnMainThread());
assert(uniInitLevel >= 1);
if (--uniInitLevel != 0)
return;
- ::curl_global_cleanup();
::libssh2_exit();
- openSslTearDown();
-
+ libcurlTearDown();
}
}
diff --git a/FreeFileSync/Source/base/dir_lock.cpp b/FreeFileSync/Source/base/dir_lock.cpp
index b449f976..a54144ec 100644
--- a/FreeFileSync/Source/base/dir_lock.cpp
+++ b/FreeFileSync/Source/base/dir_lock.cpp
@@ -182,7 +182,7 @@ LockInformation getLockInfoFromCurrentProcess() //throw FileError
if (::getdomainname(&buffer[0], buffer.size()) != 0)
THROW_LAST_FILE_ERROR(_("Cannot get process information."), "getdomainname");
- lockInfo.computerName += &buffer[0];
+ lockInfo.computerName += &buffer[0]; //can be "(none)"!
lockInfo.processId = ::getpid(); //never fails
diff --git a/FreeFileSync/Source/config.cpp b/FreeFileSync/Source/config.cpp
index e5cb92c7..f0b0f99f 100644
--- a/FreeFileSync/Source/config.cpp
+++ b/FreeFileSync/Source/config.cpp
@@ -1548,7 +1548,6 @@ void readConfig(const XmlIn& in, XmlGlobalSettings& cfg, int formatVer)
inOpt["ConfirmExternalCommandMassInvoke"].attribute("Show", cfg.confirmDlgs.confirmCommandMassInvoke);
else
inOpt["ConfirmCommandMassInvoke"].attribute("Show", cfg.confirmDlgs.confirmCommandMassInvoke);
- inOpt["ConfirmSwapSides" ].attribute("Show", cfg.confirmDlgs.confirmSwapSides);
inOpt["WarnFolderNotExisting" ].attribute("Show", cfg.warnDlgs.warnFolderNotExisting);
inOpt["WarnFoldersDifferInCase" ].attribute("Show", cfg.warnDlgs.warnFoldersDifferInCase);
inOpt["WarnUnresolvedConflicts" ].attribute("Show", cfg.warnDlgs.warnUnresolvedConflicts);
@@ -2351,7 +2350,6 @@ void writeConfig(const XmlGlobalSettings& cfg, XmlOut& out)
outOpt["ConfirmStartSync" ].attribute("Show", cfg.confirmDlgs.confirmSyncStart);
outOpt["ConfirmSaveConfig" ].attribute("Show", cfg.confirmDlgs.confirmSaveConfig);
outOpt["ConfirmCommandMassInvoke" ].attribute("Show", cfg.confirmDlgs.confirmCommandMassInvoke);
- outOpt["ConfirmSwapSides" ].attribute("Show", cfg.confirmDlgs.confirmSwapSides);
outOpt["WarnFolderNotExisting" ].attribute("Show", cfg.warnDlgs.warnFolderNotExisting);
outOpt["WarnFoldersDifferInCase" ].attribute("Show", cfg.warnDlgs.warnFoldersDifferInCase);
outOpt["WarnUnresolvedConflicts" ].attribute("Show", cfg.warnDlgs.warnUnresolvedConflicts);
diff --git a/FreeFileSync/Source/config.h b/FreeFileSync/Source/config.h
index 9e366cb9..7de0d8e6 100644
--- a/FreeFileSync/Source/config.h
+++ b/FreeFileSync/Source/config.h
@@ -83,7 +83,6 @@ struct ConfirmationDialogs
bool confirmSaveConfig = true;
bool confirmSyncStart = true;
bool confirmCommandMassInvoke = true;
- bool confirmSwapSides = true;
bool operator==(const ConfirmationDialogs&) const = default;
};
@@ -148,7 +147,7 @@ struct DpiLayout
struct XmlGlobalSettings
{
- XmlGlobalSettings(); //clang needs this anyway
+ XmlGlobalSettings();
//---------------------------------------------------------------------
//Shared (GUI/BATCH) settings
diff --git a/FreeFileSync/Source/log_file.cpp b/FreeFileSync/Source/log_file.cpp
index 2a53c44f..8a2c4d13 100644
--- a/FreeFileSync/Source/log_file.cpp
+++ b/FreeFileSync/Source/log_file.cpp
@@ -110,7 +110,7 @@ std::string generateLogFooterTxt(const std::wstring& logFilePath, int logItemsTo
return output += '\n' + std::string(SEPARATION_LINE_LEN, '_') + '\n' +
utfTo<std::string>(getOsDescription() + /*throw FileError*/ +
- L" [" + utfTo<std::wstring>(getLoginUser()) /*throw FileError*/ + L']' +
+ L" - " + utfTo<std::wstring>(getUserDescription()) /*throw FileError*/ +
(!cm.model .empty() ? L" - " + cm.model : L"") +
(!cm.vendor.empty() ? L" - " + cm.vendor : L"") + L'\n' +
@@ -346,7 +346,7 @@ std::string generateLogFooterHtml(const std::wstring& logFilePath, int logItemsT
<div style="font-size:small;">
<img src="https://freefilesync.org/images/log/)" + osImage + R"(" width="24" height="24" alt="" style="vertical-align:middle;">
<span style="vertical-align:middle;">)" + htmlTxt(getOsDescription()) + /*throw FileError*/ +
- " [" + htmlTxt(getLoginUser()) /*throw FileError*/ + ']' +
+ " &ndash; " + htmlTxt(getUserDescription()) /*throw FileError*/ +
(!cm.model .empty() ? " &ndash; " + htmlTxt(cm.model ) : "") +
(!cm.vendor.empty() ? " &ndash; " + htmlTxt(cm.vendor) : "") + R"(</span>
</div>
diff --git a/FreeFileSync/Source/ui/abstract_folder_picker.cpp b/FreeFileSync/Source/ui/abstract_folder_picker.cpp
index 914b2358..77ae562f 100644
--- a/FreeFileSync/Source/ui/abstract_folder_picker.cpp
+++ b/FreeFileSync/Source/ui/abstract_folder_picker.cpp
@@ -253,7 +253,7 @@ void AbstractFolderPickerDlg::findAndNavigateToExistingPath(const AbstractPath&
if (!AFS::getParentPath(folderPath))
return m_staticTextStatus->SetLabel(L"");
- m_staticTextStatus->SetLabel(_("Scanning...") + L' ' + utfTo<std::wstring>(FILE_NAME_SEPARATOR + folderPath.afsPath.value)); //keep it short!
+ m_staticTextStatus->SetLabelText(_("Scanning...") + L' ' + utfTo<std::wstring>(FILE_NAME_SEPARATOR + folderPath.afsPath.value)); //keep it short!
guiQueue_.processAsync([folderPath]() -> std::optional<AFS::ItemType>
{
diff --git a/FreeFileSync/Source/ui/batch_config.cpp b/FreeFileSync/Source/ui/batch_config.cpp
index a2351cc9..4bc1995c 100644
--- a/FreeFileSync/Source/ui/batch_config.cpp
+++ b/FreeFileSync/Source/ui/batch_config.cpp
@@ -67,7 +67,7 @@ BatchDialog::BatchDialog(wxWindow* parent, BatchDialogConfig& dlgCfg) :
{
setStandardButtonLayout(*bSizerStdButtons, StdButtons().setAffirmative(m_buttonSaveAs).setCancel(m_buttonCancel));
- m_staticTextHeader->SetLabel(replaceCpy(m_staticTextHeader->GetLabel(), L"%x", L"FreeFileSync.exe <" + _("configuration file") + L">.ffs_batch"));
+ m_staticTextHeader->SetLabelText(replaceCpy(m_staticTextHeader->GetLabelText(), L"%x", L"FreeFileSync.exe <" + _("configuration file") + L">.ffs_batch"));
m_staticTextHeader->Wrap(fastFromDIP(520));
m_bitmapBatchJob->SetBitmap(loadImage("cfg_batch"));
diff --git a/FreeFileSync/Source/ui/batch_status_handler.cpp b/FreeFileSync/Source/ui/batch_status_handler.cpp
index 3e5ee9a5..b78ccae2 100644
--- a/FreeFileSync/Source/ui/batch_status_handler.cpp
+++ b/FreeFileSync/Source/ui/batch_status_handler.cpp
@@ -287,7 +287,7 @@ void BatchStatusHandler::reportWarning(const std::wstring& msg, bool& warningAct
bool dontWarnAgain = false;
switch (showQuestionDialog(progressDlg_->getWindowIfVisible(), DialogInfoType::warning,
PopupDialogCfg().setDetailInstructions(msg + L"\n\n" + _("You can switch to FreeFileSync's main window to resolve this issue.")).
- remindWhenPending(soundFileAlertPending_).
+ alertWhenPending(soundFileAlertPending_).
setCheckBox(dontWarnAgain, _("&Don't show this warning again"), static_cast<ConfirmationButton3>(QuestionButton2::no)),
_("&Ignore"), _("&Switch")))
{
@@ -343,7 +343,7 @@ ProcessCallback::Response BatchStatusHandler::reportError(const ErrorInfo& error
switch (showConfirmationDialog(progressDlg_->getWindowIfVisible(), DialogInfoType::error,
PopupDialogCfg().setDetailInstructions(errorInfo.msg).
- remindWhenPending(soundFileAlertPending_),
+ alertWhenPending(soundFileAlertPending_),
_("&Ignore"), _("Ignore &all"), _("&Retry")))
{
case ConfirmationButton3::accept: //ignore
@@ -393,7 +393,7 @@ void BatchStatusHandler::reportFatalError(const std::wstring& msg)
switch (showConfirmationDialog(progressDlg_->getWindowIfVisible(), DialogInfoType::error,
PopupDialogCfg().setDetailInstructions(msg).
- remindWhenPending(soundFileAlertPending_),
+ alertWhenPending(soundFileAlertPending_),
_("&Ignore"), _("Ignore &all")))
{
case ConfirmationButton2::accept: //ignore
diff --git a/FreeFileSync/Source/ui/gui_generated.cpp b/FreeFileSync/Source/ui/gui_generated.cpp
index 9827af12..6f9cded3 100644
--- a/FreeFileSync/Source/ui/gui_generated.cpp
+++ b/FreeFileSync/Source/ui/gui_generated.cpp
@@ -11,1195 +11,1194 @@
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( wxDefaultSize, wxDefaultSize );
+ this->SetSizeHints( wxDefaultSize, wxDefaultSize );
- m_menubar = new wxMenuBar( 0 );
- m_menuFile = new wxMenu();
- m_menuItemNew = new wxMenuItem( m_menuFile, wxID_NEW, wxString( _("&New") ) + wxT('\t') + wxT("Ctrl+N"), wxEmptyString, wxITEM_NORMAL );
- m_menuFile->Append( m_menuItemNew );
+ m_menubar = new wxMenuBar( 0 );
+ m_menuFile = new wxMenu();
+ m_menuItemNew = new wxMenuItem( m_menuFile, wxID_NEW, wxString( _("&New") ) + wxT('\t') + wxT("Ctrl+N"), wxEmptyString, wxITEM_NORMAL );
+ m_menuFile->Append( m_menuItemNew );
- m_menuItemLoad = new wxMenuItem( m_menuFile, wxID_OPEN, wxString( _("&Open...") ) + wxT('\t') + wxT("Ctrl+O"), wxEmptyString, wxITEM_NORMAL );
- m_menuFile->Append( m_menuItemLoad );
+ m_menuItemLoad = new wxMenuItem( m_menuFile, wxID_OPEN, wxString( _("&Open...") ) + wxT('\t') + wxT("Ctrl+O"), wxEmptyString, wxITEM_NORMAL );
+ m_menuFile->Append( m_menuItemLoad );
- m_menuFile->AppendSeparator();
+ m_menuFile->AppendSeparator();
- m_menuItemSave = new wxMenuItem( m_menuFile, wxID_SAVE, wxString( _("&Save") ) + wxT('\t') + wxT("Ctrl+S"), wxEmptyString, wxITEM_NORMAL );
- m_menuFile->Append( m_menuItemSave );
+ m_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_menuItemSaveAs = new wxMenuItem( m_menuFile, wxID_SAVEAS, wxString( _("Save &as...") ) , wxEmptyString, wxITEM_NORMAL );
+ m_menuFile->Append( m_menuItemSaveAs );
- m_menuItemSaveAsBatch = new wxMenuItem( m_menuFile, wxID_ANY, wxString( _("Save as &batch job...") ), wxEmptyString, wxITEM_NORMAL );
- m_menuFile->Append( m_menuItemSaveAsBatch );
+ m_menuItemSaveAsBatch = new wxMenuItem( m_menuFile, wxID_ANY, wxString( _("Save as &batch job...") ) , wxEmptyString, wxITEM_NORMAL );
+ m_menuFile->Append( m_menuItemSaveAsBatch );
- m_menuFile->AppendSeparator();
+ m_menuFile->AppendSeparator();
- m_menuItemQuit = new wxMenuItem( m_menuFile, wxID_EXIT, wxString( _("E&xit") ), wxEmptyString, wxITEM_NORMAL );
- m_menuFile->Append( m_menuItemQuit );
+ m_menuItemQuit = new wxMenuItem( m_menuFile, wxID_EXIT, wxString( _("E&xit") ) , wxEmptyString, wxITEM_NORMAL );
+ m_menuFile->Append( m_menuItemQuit );
- m_menubar->Append( m_menuFile, _("&File") );
+ m_menubar->Append( m_menuFile, _("&File") );
- m_menuActions = new wxMenu();
- m_menuItemShowLog = new wxMenuItem( m_menuActions, wxID_ANY, wxString( _("Show &log") ) + wxT('\t') + wxT("F4"), wxEmptyString, wxITEM_NORMAL );
- m_menuActions->Append( m_menuItemShowLog );
+ m_menuActions = new wxMenu();
+ m_menuItemShowLog = new wxMenuItem( m_menuActions, wxID_ANY, wxString( _("Show &log") ) + wxT('\t') + wxT("F4"), wxEmptyString, wxITEM_NORMAL );
+ m_menuActions->Append( m_menuItemShowLog );
- m_menuActions->AppendSeparator();
+ m_menuActions->AppendSeparator();
- m_menuItemCompare = new wxMenuItem( m_menuActions, wxID_ANY, wxString( _("Start &comparison") ) + wxT('\t') + wxT("F5"), wxEmptyString, wxITEM_NORMAL );
- m_menuActions->Append( m_menuItemCompare );
+ m_menuItemCompare = new wxMenuItem( m_menuActions, wxID_ANY, wxString( _("Start &comparison") ) + wxT('\t') + wxT("F5"), wxEmptyString, wxITEM_NORMAL );
+ m_menuActions->Append( m_menuItemCompare );
- m_menuActions->AppendSeparator();
+ m_menuActions->AppendSeparator();
- m_menuItemCompSettings = new wxMenuItem( m_menuActions, wxID_ANY, wxString( _("C&omparison settings") ) + wxT('\t') + wxT("F6"), wxEmptyString, wxITEM_NORMAL );
- m_menuActions->Append( m_menuItemCompSettings );
+ m_menuItemCompSettings = new wxMenuItem( m_menuActions, wxID_ANY, wxString( _("C&omparison settings") ) + wxT('\t') + wxT("F6"), wxEmptyString, wxITEM_NORMAL );
+ m_menuActions->Append( m_menuItemCompSettings );
- m_menuItemFilter = new wxMenuItem( m_menuActions, wxID_ANY, wxString( _("&Filter settings") ) + wxT('\t') + wxT("F7"), wxEmptyString, wxITEM_NORMAL );
- m_menuActions->Append( m_menuItemFilter );
+ m_menuItemFilter = new wxMenuItem( m_menuActions, wxID_ANY, wxString( _("&Filter settings") ) + wxT('\t') + wxT("F7"), wxEmptyString, wxITEM_NORMAL );
+ m_menuActions->Append( m_menuItemFilter );
- m_menuItemSyncSettings = new wxMenuItem( m_menuActions, wxID_ANY, wxString( _("S&ynchronization settings") ) + wxT('\t') + wxT("F8"), wxEmptyString, wxITEM_NORMAL );
- m_menuActions->Append( m_menuItemSyncSettings );
+ m_menuItemSyncSettings = new wxMenuItem( m_menuActions, wxID_ANY, wxString( _("S&ynchronization settings") ) + wxT('\t') + wxT("F8"), wxEmptyString, wxITEM_NORMAL );
+ m_menuActions->Append( m_menuItemSyncSettings );
- m_menuActions->AppendSeparator();
+ m_menuActions->AppendSeparator();
- m_menuItemSynchronize = new wxMenuItem( m_menuActions, wxID_ANY, wxString( _("Start &synchronization") ) + wxT('\t') + wxT("F9"), wxEmptyString, wxITEM_NORMAL );
- m_menuActions->Append( m_menuItemSynchronize );
+ m_menuItemSynchronize = new wxMenuItem( m_menuActions, wxID_ANY, wxString( _("Start &synchronization") ) + wxT('\t') + wxT("F9"), wxEmptyString, wxITEM_NORMAL );
+ m_menuActions->Append( m_menuItemSynchronize );
- m_menubar->Append( m_menuActions, _("&Actions") );
+ m_menubar->Append( m_menuActions, _("&Actions") );
- m_menuTools = new wxMenu();
- m_menuItemOptions = new wxMenuItem( m_menuTools, wxID_PREFERENCES, wxString( _("&Preferences") ) + wxT('\t') + wxT("Ctrl+,"), wxEmptyString, wxITEM_NORMAL );
- m_menuTools->Append( m_menuItemOptions );
+ m_menuTools = new wxMenu();
+ m_menuItemOptions = new wxMenuItem( m_menuTools, wxID_PREFERENCES, wxString( _("&Preferences") ) + wxT('\t') + wxT("Ctrl+,"), wxEmptyString, wxITEM_NORMAL );
+ m_menuTools->Append( m_menuItemOptions );
- m_menuLanguages = new wxMenu();
- wxMenuItem* m_menuLanguagesItem = new wxMenuItem( m_menuTools, wxID_ANY, _("&Language"), wxEmptyString, wxITEM_NORMAL, m_menuLanguages );
- m_menuTools->Append( m_menuLanguagesItem );
+ m_menuLanguages = new wxMenu();
+ wxMenuItem* m_menuLanguagesItem = new wxMenuItem( m_menuTools, wxID_ANY, _("&Language"), wxEmptyString, wxITEM_NORMAL, m_menuLanguages );
+ m_menuTools->Append( m_menuLanguagesItem );
- m_menuTools->AppendSeparator();
+ m_menuTools->AppendSeparator();
- m_menuItemFind = new wxMenuItem( m_menuTools, wxID_FIND, wxString( _("&Find...") ) + wxT('\t') + wxT("Ctrl+F"), wxEmptyString, wxITEM_NORMAL );
- m_menuTools->Append( m_menuItemFind );
+ m_menuItemFind = new wxMenuItem( m_menuTools, wxID_FIND, wxString( _("&Find...") ) + wxT('\t') + wxT("Ctrl+F"), wxEmptyString, wxITEM_NORMAL );
+ m_menuTools->Append( m_menuItemFind );
- m_menuItemExportList = new wxMenuItem( m_menuTools, wxID_ANY, wxString( _("&Export file list...") ), wxEmptyString, wxITEM_NORMAL );
- m_menuTools->Append( m_menuItemExportList );
+ m_menuItemExportList = new wxMenuItem( m_menuTools, wxID_ANY, wxString( _("&Export file list...") ) , wxEmptyString, wxITEM_NORMAL );
+ m_menuTools->Append( m_menuItemExportList );
- m_menuTools->AppendSeparator();
+ m_menuTools->AppendSeparator();
- m_menuItemResetLayout = new wxMenuItem( m_menuTools, wxID_ANY, wxString( _("&Reset layout") ), wxEmptyString, wxITEM_NORMAL );
- m_menuTools->Append( m_menuItemResetLayout );
+ m_menuItemResetLayout = new wxMenuItem( m_menuTools, wxID_ANY, wxString( _("&Reset layout") ) , wxEmptyString, wxITEM_NORMAL );
+ m_menuTools->Append( m_menuItemResetLayout );
- m_menuItemShowMain = new wxMenuItem( m_menuTools, wxID_ANY, wxString( _("dummy") ), wxEmptyString, wxITEM_NORMAL );
- m_menuTools->Append( m_menuItemShowMain );
+ m_menuItemShowMain = new wxMenuItem( m_menuTools, wxID_ANY, wxString( _("dummy") ) , wxEmptyString, wxITEM_NORMAL );
+ m_menuTools->Append( m_menuItemShowMain );
- m_menuItemShowFolders = new wxMenuItem( m_menuTools, wxID_ANY, wxString( _("dummy") ), wxEmptyString, wxITEM_NORMAL );
- m_menuTools->Append( m_menuItemShowFolders );
+ m_menuItemShowFolders = new wxMenuItem( m_menuTools, wxID_ANY, wxString( _("dummy") ) , wxEmptyString, wxITEM_NORMAL );
+ m_menuTools->Append( m_menuItemShowFolders );
- m_menuItemShowViewFilter = new wxMenuItem( m_menuTools, wxID_ANY, wxString( _("dummy") ), wxEmptyString, wxITEM_NORMAL );
- m_menuTools->Append( m_menuItemShowViewFilter );
+ m_menuItemShowViewFilter = new wxMenuItem( m_menuTools, wxID_ANY, wxString( _("dummy") ) , wxEmptyString, wxITEM_NORMAL );
+ m_menuTools->Append( m_menuItemShowViewFilter );
- m_menuItemShowConfig = new wxMenuItem( m_menuTools, wxID_ANY, wxString( _("dummy") ), wxEmptyString, wxITEM_NORMAL );
- m_menuTools->Append( m_menuItemShowConfig );
+ m_menuItemShowConfig = new wxMenuItem( m_menuTools, wxID_ANY, wxString( _("dummy") ) , wxEmptyString, wxITEM_NORMAL );
+ m_menuTools->Append( m_menuItemShowConfig );
- m_menuItemShowOverview = new wxMenuItem( m_menuTools, wxID_ANY, wxString( _("dummy") ), wxEmptyString, wxITEM_NORMAL );
- m_menuTools->Append( m_menuItemShowOverview );
+ m_menuItemShowOverview = new wxMenuItem( m_menuTools, wxID_ANY, wxString( _("dummy") ) , wxEmptyString, wxITEM_NORMAL );
+ m_menuTools->Append( m_menuItemShowOverview );
- m_menubar->Append( m_menuTools, _("&Tools") );
+ m_menubar->Append( m_menuTools, _("&Tools") );
- m_menuHelp = new wxMenu();
- m_menuItemHelp = new wxMenuItem( m_menuHelp, wxID_HELP, wxString( _("&View help") ) + wxT('\t') + wxT("F1"), wxEmptyString, wxITEM_NORMAL );
- m_menuHelp->Append( m_menuItemHelp );
+ m_menuHelp = new wxMenu();
+ m_menuItemHelp = new wxMenuItem( m_menuHelp, wxID_HELP, wxString( _("&View help") ) + wxT('\t') + wxT("F1"), wxEmptyString, wxITEM_NORMAL );
+ m_menuHelp->Append( m_menuItemHelp );
- m_menuHelp->AppendSeparator();
+ m_menuHelp->AppendSeparator();
- m_menuItemCheckVersionNow = new wxMenuItem( m_menuHelp, wxID_ANY, wxString( _("&Check for updates now") ), wxEmptyString, wxITEM_NORMAL );
- m_menuHelp->Append( m_menuItemCheckVersionNow );
+ m_menuItemCheckVersionNow = new wxMenuItem( m_menuHelp, wxID_ANY, wxString( _("&Check for updates now") ) , wxEmptyString, wxITEM_NORMAL );
+ m_menuHelp->Append( m_menuItemCheckVersionNow );
- m_menuItemCheckVersionAuto = new wxMenuItem( m_menuHelp, wxID_ANY, wxString( _("Check &automatically once a week") ), wxEmptyString, wxITEM_CHECK );
- m_menuHelp->Append( m_menuItemCheckVersionAuto );
- m_menuItemCheckVersionAuto->Check( true );
+ m_menuItemCheckVersionAuto = new wxMenuItem( m_menuHelp, wxID_ANY, wxString( _("Check &automatically once a week") ) , wxEmptyString, wxITEM_CHECK );
+ m_menuHelp->Append( m_menuItemCheckVersionAuto );
+ m_menuItemCheckVersionAuto->Check( true );
- m_menuHelp->AppendSeparator();
+ 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_menuItemAbout = new wxMenuItem( m_menuHelp, wxID_ABOUT, wxString( _("&About") ) + wxT('\t') + wxT("Shift+F1"), wxEmptyString, wxITEM_NORMAL );
+ m_menuHelp->Append( m_menuItemAbout );
- m_menubar->Append( m_menuHelp, _("&Help") );
+ m_menubar->Append( m_menuHelp, _("&Help") );
- this->SetMenuBar( m_menubar );
+ this->SetMenuBar( m_menubar );
- bSizerPanelHolder = new wxBoxSizer( wxVERTICAL );
+ bSizerPanelHolder = new wxBoxSizer( wxVERTICAL );
- m_panelTopButtons = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panelTopButtons->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_panelTopButtons = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panelTopButtons->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- wxBoxSizer* bSizer1791;
- bSizer1791 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer1791;
+ bSizer1791 = new wxBoxSizer( wxVERTICAL );
- bSizerTopButtons = new wxBoxSizer( wxHORIZONTAL );
+ bSizerTopButtons = new wxBoxSizer( wxHORIZONTAL );
- wxBoxSizer* bSizer261;
- bSizer261 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer261;
+ bSizer261 = new wxBoxSizer( wxHORIZONTAL );
- bSizer261->Add( 0, 0, 1, 0, 5 );
+ bSizer261->Add( 0, 0, 1, 0, 5 );
- m_bpButtonCmpConfig = new wxBitmapButton( m_panelTopButtons, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- m_bpButtonCmpConfig->SetToolTip( _("dummy") );
+ m_bpButtonCmpConfig = new wxBitmapButton( m_panelTopButtons, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ m_bpButtonCmpConfig->SetToolTip( _("dummy") );
- bSizer261->Add( m_bpButtonCmpConfig, 0, wxEXPAND, 5 );
+ bSizer261->Add( m_bpButtonCmpConfig, 0, wxEXPAND, 5 );
- bSizer261->Add( 4, 0, 0, 0, 5 );
+ bSizer261->Add( 4, 0, 0, 0, 5 );
- m_buttonCancel = new wxButton( m_panelTopButtons, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
- m_buttonCancel->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
- m_buttonCancel->Enable( false );
- m_buttonCancel->Hide();
+ m_buttonCancel = new wxButton( m_panelTopButtons, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_buttonCancel->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
+ m_buttonCancel->Enable( false );
+ m_buttonCancel->Hide();
- bSizer261->Add( m_buttonCancel, 0, wxEXPAND, 5 );
+ bSizer261->Add( m_buttonCancel, 0, wxEXPAND, 5 );
- m_buttonCompare = new zen::BitmapTextButton( m_panelTopButtons, wxID_ANY, _("Compare"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
+ m_buttonCompare = new zen::BitmapTextButton( m_panelTopButtons, wxID_ANY, _("Compare"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_buttonCompare->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
+ m_buttonCompare->SetToolTip( _("dummy") );
- m_buttonCompare->SetDefault();
- m_buttonCompare->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
- m_buttonCompare->SetToolTip( _("dummy") );
+ bSizer261->Add( m_buttonCompare, 0, wxEXPAND, 5 );
- bSizer261->Add( m_buttonCompare, 0, wxEXPAND, 5 );
+ m_bpButtonCmpContext = new wxBitmapButton( m_panelTopButtons, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ bSizer261->Add( m_bpButtonCmpContext, 0, wxEXPAND, 5 );
- m_bpButtonCmpContext = new wxBitmapButton( m_panelTopButtons, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- bSizer261->Add( m_bpButtonCmpContext, 0, wxEXPAND, 5 );
+ bSizer261->Add( 0, 0, 1, 0, 5 );
- bSizer261->Add( 0, 0, 1, 0, 5 );
+ bSizerTopButtons->Add( bSizer261, 1, wxEXPAND, 5 );
- bSizerTopButtons->Add( bSizer261, 1, wxEXPAND, 5 );
+ bSizerTopButtons->Add( 5, 2, 0, 0, 5 );
- bSizerTopButtons->Add( 5, 2, 0, 0, 5 );
+ wxBoxSizer* bSizer199;
+ bSizer199 = new wxBoxSizer( wxHORIZONTAL );
- wxBoxSizer* bSizer199;
- bSizer199 = new wxBoxSizer( wxHORIZONTAL );
+ bSizer199->Add( 0, 0, 1, 0, 5 );
- bSizer199->Add( 0, 0, 1, 0, 5 );
+ m_bpButtonFilter = new wxBitmapButton( m_panelTopButtons, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0|wxFULL_REPAINT_ON_RESIZE );
+ m_bpButtonFilter->SetToolTip( _("dummy") );
- m_bpButtonFilter = new wxBitmapButton( m_panelTopButtons, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0|wxFULL_REPAINT_ON_RESIZE );
- m_bpButtonFilter->SetToolTip( _("dummy") );
+ bSizer199->Add( m_bpButtonFilter, 0, wxEXPAND, 5 );
- bSizer199->Add( m_bpButtonFilter, 0, wxEXPAND, 5 );
+ m_bpButtonFilterContext = new wxBitmapButton( m_panelTopButtons, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ bSizer199->Add( m_bpButtonFilterContext, 0, wxEXPAND, 5 );
- m_bpButtonFilterContext = new wxBitmapButton( m_panelTopButtons, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- bSizer199->Add( m_bpButtonFilterContext, 0, wxEXPAND, 5 );
+ bSizer199->Add( 0, 0, 1, 0, 5 );
- bSizer199->Add( 0, 0, 1, 0, 5 );
+ bSizerTopButtons->Add( bSizer199, 0, wxEXPAND, 5 );
- bSizerTopButtons->Add( bSizer199, 0, wxEXPAND, 5 );
+ bSizerTopButtons->Add( 5, 2, 0, 0, 5 );
- bSizerTopButtons->Add( 5, 2, 0, 0, 5 );
+ wxBoxSizer* bSizer262;
+ bSizer262 = new wxBoxSizer( wxHORIZONTAL );
- wxBoxSizer* bSizer262;
- bSizer262 = new wxBoxSizer( wxHORIZONTAL );
+ bSizer262->Add( 0, 0, 1, 0, 5 );
- bSizer262->Add( 0, 0, 1, 0, 5 );
+ m_bpButtonSyncConfig = new wxBitmapButton( m_panelTopButtons, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ m_bpButtonSyncConfig->SetToolTip( _("dummy") );
- m_bpButtonSyncConfig = new wxBitmapButton( m_panelTopButtons, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- m_bpButtonSyncConfig->SetToolTip( _("dummy") );
+ bSizer262->Add( m_bpButtonSyncConfig, 0, wxEXPAND, 5 );
- bSizer262->Add( m_bpButtonSyncConfig, 0, wxEXPAND, 5 );
+ bSizer262->Add( 4, 0, 0, 0, 5 );
- bSizer262->Add( 4, 0, 0, 0, 5 );
+ m_buttonSync = new zen::BitmapTextButton( m_panelTopButtons, wxID_ANY, _("Synchronize"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_buttonSync->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
+ m_buttonSync->SetToolTip( _("dummy") );
- m_buttonSync = new zen::BitmapTextButton( m_panelTopButtons, wxID_ANY, _("Synchronize"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
- m_buttonSync->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
- m_buttonSync->SetToolTip( _("dummy") );
+ bSizer262->Add( m_buttonSync, 0, wxEXPAND, 5 );
- bSizer262->Add( m_buttonSync, 0, wxEXPAND, 5 );
+ m_bpButtonSyncContext = new wxBitmapButton( m_panelTopButtons, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ bSizer262->Add( m_bpButtonSyncContext, 0, wxEXPAND, 5 );
- m_bpButtonSyncContext = new wxBitmapButton( m_panelTopButtons, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- bSizer262->Add( m_bpButtonSyncContext, 0, wxEXPAND, 5 );
+ bSizer262->Add( 0, 0, 1, 0, 5 );
- bSizer262->Add( 0, 0, 1, 0, 5 );
+ bSizerTopButtons->Add( bSizer262, 1, wxEXPAND, 5 );
- bSizerTopButtons->Add( bSizer262, 1, wxEXPAND, 5 );
+ bSizer1791->Add( bSizerTopButtons, 1, wxEXPAND, 5 );
- bSizer1791->Add( bSizerTopButtons, 1, wxEXPAND, 5 );
+ m_panelTopButtons->SetSizer( bSizer1791 );
+ m_panelTopButtons->Layout();
+ bSizer1791->Fit( m_panelTopButtons );
+ bSizerPanelHolder->Add( m_panelTopButtons, 0, wxEXPAND, 5 );
- m_panelTopButtons->SetSizer( bSizer1791 );
- m_panelTopButtons->Layout();
- bSizer1791->Fit( m_panelTopButtons );
- bSizerPanelHolder->Add( m_panelTopButtons, 0, wxEXPAND, 5 );
+ m_panelDirectoryPairs = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL|wxBORDER_STATIC );
+ wxBoxSizer* bSizer1601;
+ bSizer1601 = new wxBoxSizer( wxVERTICAL );
- m_panelDirectoryPairs = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL|wxBORDER_STATIC );
- wxBoxSizer* bSizer1601;
- bSizer1601 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer91;
+ bSizer91 = new wxBoxSizer( wxHORIZONTAL );
- wxBoxSizer* bSizer91;
- bSizer91 = new wxBoxSizer( wxHORIZONTAL );
+ m_panelTopLeft = new wxPanel( m_panelDirectoryPairs, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panelTopLeft->SetMinSize( wxSize( 1,-1 ) );
- m_panelTopLeft = new wxPanel( m_panelDirectoryPairs, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panelTopLeft->SetMinSize( wxSize( 1, -1 ) );
+ wxFlexGridSizer* fgSizer8;
+ fgSizer8 = new wxFlexGridSizer( 0, 2, 0, 0 );
+ fgSizer8->AddGrowableCol( 1 );
+ fgSizer8->SetFlexibleDirection( wxBOTH );
+ fgSizer8->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_ALL );
- wxFlexGridSizer* fgSizer8;
- fgSizer8 = new wxFlexGridSizer( 0, 2, 0, 0 );
- fgSizer8->AddGrowableCol( 1 );
- fgSizer8->SetFlexibleDirection( wxBOTH );
- fgSizer8->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_ALL );
+ fgSizer8->Add( 0, 0, 1, wxEXPAND, 5 );
- fgSizer8->Add( 0, 0, 1, wxEXPAND, 5 );
+ m_staticTextResolvedPathL = new wxStaticText( m_panelTopLeft, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextResolvedPathL->Wrap( -1 );
+ fgSizer8->Add( m_staticTextResolvedPathL, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2 );
- m_staticTextResolvedPathL = new wxStaticText( m_panelTopLeft, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextResolvedPathL->Wrap( -1 );
- fgSizer8->Add( m_staticTextResolvedPathL, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2 );
+ wxBoxSizer* bSizer159;
+ bSizer159 = new wxBoxSizer( wxHORIZONTAL );
- wxBoxSizer* bSizer159;
- bSizer159 = new wxBoxSizer( wxHORIZONTAL );
+ m_bpButtonAddPair = new wxBitmapButton( m_panelTopLeft, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ m_bpButtonAddPair->SetToolTip( _("Add folder pair") );
- m_bpButtonAddPair = new wxBitmapButton( m_panelTopLeft, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- m_bpButtonAddPair->SetToolTip( _("Add folder pair") );
+ bSizer159->Add( m_bpButtonAddPair, 0, wxEXPAND, 5 );
- bSizer159->Add( m_bpButtonAddPair, 0, wxEXPAND, 5 );
+ m_bpButtonRemovePair = new wxBitmapButton( m_panelTopLeft, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ m_bpButtonRemovePair->SetToolTip( _("Remove folder pair") );
- m_bpButtonRemovePair = new wxBitmapButton( m_panelTopLeft, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- m_bpButtonRemovePair->SetToolTip( _("Remove folder pair") );
+ bSizer159->Add( m_bpButtonRemovePair, 0, wxEXPAND, 5 );
- bSizer159->Add( m_bpButtonRemovePair, 0, wxEXPAND, 5 );
+ fgSizer8->Add( bSizer159, 0, wxEXPAND, 5 );
- fgSizer8->Add( bSizer159, 0, wxEXPAND, 5 );
+ wxBoxSizer* bSizer182;
+ bSizer182 = new wxBoxSizer( wxHORIZONTAL );
- wxBoxSizer* bSizer182;
- bSizer182 = new wxBoxSizer( wxHORIZONTAL );
+ m_folderPathLeft = new fff::FolderHistoryBox( m_panelTopLeft, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
+ bSizer182->Add( m_folderPathLeft, 1, wxALIGN_CENTER_VERTICAL, 5 );
- m_folderPathLeft = new fff::FolderHistoryBox( m_panelTopLeft, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
- bSizer182->Add( m_folderPathLeft, 1, wxALIGN_CENTER_VERTICAL, 5 );
+ m_buttonSelectFolderLeft = new wxButton( m_panelTopLeft, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_buttonSelectFolderLeft->SetToolTip( _("Select a folder") );
- m_buttonSelectFolderLeft = new wxButton( m_panelTopLeft, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
- m_buttonSelectFolderLeft->SetToolTip( _("Select a folder") );
+ bSizer182->Add( m_buttonSelectFolderLeft, 0, wxEXPAND, 5 );
- bSizer182->Add( m_buttonSelectFolderLeft, 0, wxEXPAND, 5 );
+ m_bpButtonSelectAltFolderLeft = new wxBitmapButton( m_panelTopLeft, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ m_bpButtonSelectAltFolderLeft->SetToolTip( _("Access online storage") );
- m_bpButtonSelectAltFolderLeft = new wxBitmapButton( m_panelTopLeft, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- m_bpButtonSelectAltFolderLeft->SetToolTip( _("Access online storage") );
+ bSizer182->Add( m_bpButtonSelectAltFolderLeft, 0, wxEXPAND, 5 );
- bSizer182->Add( m_bpButtonSelectAltFolderLeft, 0, wxEXPAND, 5 );
+ fgSizer8->Add( bSizer182, 0, wxEXPAND, 5 );
- fgSizer8->Add( bSizer182, 0, wxEXPAND, 5 );
+ m_panelTopLeft->SetSizer( fgSizer8 );
+ m_panelTopLeft->Layout();
+ fgSizer8->Fit( m_panelTopLeft );
+ bSizer91->Add( m_panelTopLeft, 1, wxLEFT|wxALIGN_BOTTOM, 5 );
- m_panelTopLeft->SetSizer( fgSizer8 );
- m_panelTopLeft->Layout();
- fgSizer8->Fit( m_panelTopLeft );
- bSizer91->Add( m_panelTopLeft, 1, wxLEFT|wxALIGN_BOTTOM, 5 );
+ m_panelTopCenter = new wxPanel( m_panelDirectoryPairs, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ wxBoxSizer* bSizer1771;
+ bSizer1771 = new wxBoxSizer( wxVERTICAL );
- m_panelTopCenter = new wxPanel( m_panelDirectoryPairs, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- wxBoxSizer* bSizer1771;
- bSizer1771 = new wxBoxSizer( wxVERTICAL );
+ m_bpButtonSwapSides = new wxBitmapButton( m_panelTopCenter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ m_bpButtonSwapSides->SetToolTip( _("dummy") );
- m_bpButtonSwapSides = new wxBitmapButton( m_panelTopCenter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- m_bpButtonSwapSides->SetToolTip( _("dummy") );
+ bSizer1771->Add( m_bpButtonSwapSides, 0, wxEXPAND, 5 );
- bSizer1771->Add( m_bpButtonSwapSides, 0, wxEXPAND, 5 );
+ wxBoxSizer* bSizer160;
+ bSizer160 = new wxBoxSizer( wxHORIZONTAL );
- wxBoxSizer* bSizer160;
- bSizer160 = new wxBoxSizer( wxHORIZONTAL );
+ m_bpButtonLocalCompCfg = new wxBitmapButton( m_panelTopCenter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ m_bpButtonLocalCompCfg->SetToolTip( _("dummy") );
- m_bpButtonLocalCompCfg = new wxBitmapButton( m_panelTopCenter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- m_bpButtonLocalCompCfg->SetToolTip( _("dummy") );
+ bSizer160->Add( m_bpButtonLocalCompCfg, 0, wxEXPAND, 5 );
- bSizer160->Add( m_bpButtonLocalCompCfg, 0, wxEXPAND, 5 );
+ m_bpButtonLocalFilter = new wxBitmapButton( m_panelTopCenter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ m_bpButtonLocalFilter->SetToolTip( _("dummy") );
- m_bpButtonLocalFilter = new wxBitmapButton( m_panelTopCenter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- m_bpButtonLocalFilter->SetToolTip( _("dummy") );
+ bSizer160->Add( m_bpButtonLocalFilter, 0, wxEXPAND, 5 );
- bSizer160->Add( m_bpButtonLocalFilter, 0, wxEXPAND, 5 );
+ m_bpButtonLocalSyncCfg = new wxBitmapButton( m_panelTopCenter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ m_bpButtonLocalSyncCfg->SetToolTip( _("dummy") );
- m_bpButtonLocalSyncCfg = new wxBitmapButton( m_panelTopCenter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- m_bpButtonLocalSyncCfg->SetToolTip( _("dummy") );
+ bSizer160->Add( m_bpButtonLocalSyncCfg, 0, wxEXPAND, 5 );
- bSizer160->Add( m_bpButtonLocalSyncCfg, 0, wxEXPAND, 5 );
+ bSizer1771->Add( bSizer160, 1, wxALIGN_CENTER_HORIZONTAL, 5 );
- bSizer1771->Add( bSizer160, 1, wxALIGN_CENTER_HORIZONTAL, 5 );
+ m_panelTopCenter->SetSizer( bSizer1771 );
+ m_panelTopCenter->Layout();
+ bSizer1771->Fit( m_panelTopCenter );
+ bSizer91->Add( m_panelTopCenter, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
- m_panelTopCenter->SetSizer( bSizer1771 );
- m_panelTopCenter->Layout();
- bSizer1771->Fit( m_panelTopCenter );
- bSizer91->Add( m_panelTopCenter, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
+ m_panelTopRight = new wxPanel( m_panelDirectoryPairs, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panelTopRight->SetMinSize( wxSize( 1,-1 ) );
- 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* bSizer183;
- bSizer183 = new wxBoxSizer( wxVERTICAL );
+ m_staticTextResolvedPathR = new wxStaticText( m_panelTopRight, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextResolvedPathR->Wrap( -1 );
+ bSizer183->Add( m_staticTextResolvedPathR, 0, wxALL, 2 );
- m_staticTextResolvedPathR = new wxStaticText( m_panelTopRight, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextResolvedPathR->Wrap( -1 );
- bSizer183->Add( m_staticTextResolvedPathR, 0, wxALL, 2 );
+ wxBoxSizer* bSizer179;
+ bSizer179 = new wxBoxSizer( wxHORIZONTAL );
- wxBoxSizer* bSizer179;
- bSizer179 = new wxBoxSizer( wxHORIZONTAL );
+ m_folderPathRight = new fff::FolderHistoryBox( m_panelTopRight, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
+ bSizer179->Add( m_folderPathRight, 1, wxALIGN_CENTER_VERTICAL, 5 );
- m_folderPathRight = new fff::FolderHistoryBox( m_panelTopRight, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
- bSizer179->Add( m_folderPathRight, 1, wxALIGN_CENTER_VERTICAL, 5 );
+ m_buttonSelectFolderRight = new wxButton( m_panelTopRight, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_buttonSelectFolderRight->SetToolTip( _("Select a folder") );
- m_buttonSelectFolderRight = new wxButton( m_panelTopRight, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
- m_buttonSelectFolderRight->SetToolTip( _("Select a folder") );
+ bSizer179->Add( m_buttonSelectFolderRight, 0, wxEXPAND, 5 );
- bSizer179->Add( m_buttonSelectFolderRight, 0, wxEXPAND, 5 );
+ m_bpButtonSelectAltFolderRight = new wxBitmapButton( m_panelTopRight, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ m_bpButtonSelectAltFolderRight->SetToolTip( _("Access online storage") );
- m_bpButtonSelectAltFolderRight = new wxBitmapButton( m_panelTopRight, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- m_bpButtonSelectAltFolderRight->SetToolTip( _("Access online storage") );
+ bSizer179->Add( m_bpButtonSelectAltFolderRight, 0, wxEXPAND, 5 );
- bSizer179->Add( m_bpButtonSelectAltFolderRight, 0, wxEXPAND, 5 );
+ bSizer183->Add( bSizer179, 0, wxEXPAND, 5 );
- bSizer183->Add( bSizer179, 0, wxEXPAND, 5 );
+ m_panelTopRight->SetSizer( bSizer183 );
+ m_panelTopRight->Layout();
+ bSizer183->Fit( m_panelTopRight );
+ bSizer91->Add( m_panelTopRight, 1, wxRIGHT|wxALIGN_BOTTOM, 5 );
- m_panelTopRight->SetSizer( bSizer183 );
- m_panelTopRight->Layout();
- bSizer183->Fit( m_panelTopRight );
- bSizer91->Add( m_panelTopRight, 1, wxRIGHT|wxALIGN_BOTTOM, 5 );
+ bSizer1601->Add( bSizer91, 0, 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 ) );
- 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 );
- bSizerAddFolderPairs = new wxBoxSizer( wxVERTICAL );
+ m_scrolledWindowFolderPairs->SetSizer( bSizerAddFolderPairs );
+ m_scrolledWindowFolderPairs->Layout();
+ bSizerAddFolderPairs->Fit( m_scrolledWindowFolderPairs );
+ bSizer1601->Add( m_scrolledWindowFolderPairs, 1, wxEXPAND, 5 );
- m_scrolledWindowFolderPairs->SetSizer( bSizerAddFolderPairs );
- m_scrolledWindowFolderPairs->Layout();
- bSizerAddFolderPairs->Fit( m_scrolledWindowFolderPairs );
- bSizer1601->Add( m_scrolledWindowFolderPairs, 1, wxEXPAND, 5 );
+ m_panelDirectoryPairs->SetSizer( bSizer1601 );
+ m_panelDirectoryPairs->Layout();
+ bSizer1601->Fit( m_panelDirectoryPairs );
+ bSizerPanelHolder->Add( m_panelDirectoryPairs, 0, wxEXPAND, 5 );
- m_panelDirectoryPairs->SetSizer( bSizer1601 );
- m_panelDirectoryPairs->Layout();
- bSizer1601->Fit( m_panelDirectoryPairs );
- bSizerPanelHolder->Add( m_panelDirectoryPairs, 0, wxEXPAND, 5 );
+ m_gridOverview = new zen::Grid( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHSCROLL|wxVSCROLL );
+ m_gridOverview->SetScrollRate( 5, 5 );
+ bSizerPanelHolder->Add( m_gridOverview, 0, 0, 5 );
- m_gridOverview = new zen::Grid( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHSCROLL|wxVSCROLL );
- m_gridOverview->SetScrollRate( 5, 5 );
- bSizerPanelHolder->Add( m_gridOverview, 0, 0, 5 );
+ m_panelCenter = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ wxBoxSizer* bSizer1711;
+ bSizer1711 = new wxBoxSizer( wxVERTICAL );
- m_panelCenter = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- wxBoxSizer* bSizer1711;
- bSizer1711 = new wxBoxSizer( wxVERTICAL );
+ m_splitterMain = new fff::TripleSplitter( m_panelCenter, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ wxBoxSizer* bSizer1781;
+ bSizer1781 = new wxBoxSizer( wxHORIZONTAL );
- m_splitterMain = new fff::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_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_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_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_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, wxTAB_TRAVERSAL|wxBORDER_STATIC );
+ wxBoxSizer* bSizer451;
+ bSizer451 = new wxBoxSizer( wxHORIZONTAL );
- m_panelStatusBar = new wxPanel( m_panelCenter, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL|wxBORDER_STATIC );
- wxBoxSizer* bSizer451;
- bSizer451 = new wxBoxSizer( wxHORIZONTAL );
+ bSizerFileStatus = new wxBoxSizer( wxHORIZONTAL );
- bSizerFileStatus = new wxBoxSizer( wxHORIZONTAL );
+ bSizerStatusLeft = new wxBoxSizer( wxHORIZONTAL );
- bSizerStatusLeft = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer53;
+ bSizer53 = new wxBoxSizer( wxHORIZONTAL );
- wxBoxSizer* bSizer53;
- bSizer53 = new wxBoxSizer( wxHORIZONTAL );
+ bSizer53->Add( 0, 0, 1, wxALIGN_CENTER_VERTICAL, 5 );
- bSizer53->Add( 0, 0, 1, wxALIGN_CENTER_VERTICAL, 5 );
+ bSizerStatusLeftDirectories = new wxBoxSizer( wxHORIZONTAL );
- 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 );
- 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 );
- 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 );
- 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 );
- bSizer53->Add( bSizerStatusLeftDirectories, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ bSizerStatusLeftFiles = new wxBoxSizer( wxHORIZONTAL );
- bSizerStatusLeftFiles = new wxBoxSizer( wxHORIZONTAL );
+ bSizerStatusLeftFiles->Add( 10, 0, 0, 0, 5 );
- 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 );
- 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 );
- 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 );
- m_staticTextStatusLeftFiles = new wxStaticText( m_panelStatusBar, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextStatusLeftFiles->Wrap( -1 );
- bSizerStatusLeftFiles->Add( m_staticTextStatusLeftFiles, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+ bSizerStatusLeftFiles->Add( 4, 0, 0, 0, 5 );
- bSizerStatusLeftFiles->Add( 4, 0, 0, 0, 5 );
+ m_staticTextStatusLeftBytes = new wxStaticText( m_panelStatusBar, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextStatusLeftBytes->Wrap( -1 );
+ bSizerStatusLeftFiles->Add( m_staticTextStatusLeftBytes, 0, wxALIGN_CENTER_VERTICAL, 5 );
- 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( bSizerStatusLeftFiles, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ bSizer53->Add( 0, 0, 1, wxALIGN_CENTER_VERTICAL, 5 );
- bSizer53->Add( 0, 0, 1, wxALIGN_CENTER_VERTICAL, 5 );
+ bSizerStatusLeft->Add( bSizer53, 1, wxEXPAND, 5 );
- bSizerStatusLeft->Add( bSizer53, 1, wxEXPAND, 5 );
+ m_staticline9 = new wxStaticLine( m_panelStatusBar, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizerStatusLeft->Add( m_staticline9, 0, wxEXPAND|wxTOP, 2 );
- m_staticline9 = new wxStaticLine( m_panelStatusBar, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizerStatusLeft->Add( m_staticline9, 0, wxEXPAND|wxTOP, 2 );
+ bSizerFileStatus->Add( bSizerStatusLeft, 1, wxEXPAND, 5 );
- bSizerFileStatus->Add( bSizerStatusLeft, 1, wxEXPAND, 5 );
+ bSizerFileStatus->Add( 26, 0, 0, wxALIGN_CENTER_VERTICAL, 5 );
- bSizerFileStatus->Add( 26, 0, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ m_staticTextStatusCenter = new wxStaticText( m_panelStatusBar, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextStatusCenter->Wrap( -1 );
+ bSizerFileStatus->Add( m_staticTextStatusCenter, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
- m_staticTextStatusCenter = new wxStaticText( m_panelStatusBar, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextStatusCenter->Wrap( -1 );
- bSizerFileStatus->Add( m_staticTextStatusCenter, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+ bSizerFileStatus->Add( 26, 0, 0, wxALIGN_CENTER_VERTICAL, 5 );
- bSizerFileStatus->Add( 26, 0, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ bSizerStatusRight = new wxBoxSizer( wxHORIZONTAL );
- bSizerStatusRight = new wxBoxSizer( wxHORIZONTAL );
+ m_staticline10 = new wxStaticLine( m_panelStatusBar, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizerStatusRight->Add( m_staticline10, 0, wxEXPAND|wxTOP, 2 );
- m_staticline10 = new wxStaticLine( m_panelStatusBar, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizerStatusRight->Add( m_staticline10, 0, wxEXPAND|wxTOP, 2 );
+ wxBoxSizer* bSizer52;
+ bSizer52 = new wxBoxSizer( wxHORIZONTAL );
- wxBoxSizer* bSizer52;
- bSizer52 = new wxBoxSizer( wxHORIZONTAL );
+ bSizer52->Add( 0, 0, 1, wxALIGN_CENTER_VERTICAL, 5 );
- bSizer52->Add( 0, 0, 1, wxALIGN_CENTER_VERTICAL, 5 );
+ bSizerStatusRightDirectories = new wxBoxSizer( wxHORIZONTAL );
- 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 );
- 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 );
- 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 );
- 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 );
- bSizer52->Add( bSizerStatusRightDirectories, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ bSizerStatusRightFiles = new wxBoxSizer( wxHORIZONTAL );
- bSizerStatusRightFiles = new wxBoxSizer( wxHORIZONTAL );
+ bSizerStatusRightFiles->Add( 10, 0, 0, 0, 5 );
- 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 );
- 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 );
- 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 );
- m_staticTextStatusRightFiles = new wxStaticText( m_panelStatusBar, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextStatusRightFiles->Wrap( -1 );
- bSizerStatusRightFiles->Add( m_staticTextStatusRightFiles, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+ bSizerStatusRightFiles->Add( 4, 0, 0, 0, 5 );
- bSizerStatusRightFiles->Add( 4, 0, 0, 0, 5 );
+ m_staticTextStatusRightBytes = new wxStaticText( m_panelStatusBar, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextStatusRightBytes->Wrap( -1 );
+ bSizerStatusRightFiles->Add( m_staticTextStatusRightBytes, 0, wxALIGN_CENTER_VERTICAL, 5 );
- 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( bSizerStatusRightFiles, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ bSizer52->Add( 0, 0, 1, wxALIGN_CENTER_VERTICAL, 5 );
- bSizer52->Add( 0, 0, 1, wxALIGN_CENTER_VERTICAL, 5 );
+ bSizerStatusRight->Add( bSizer52, 1, wxEXPAND, 5 );
- bSizerStatusRight->Add( bSizer52, 1, wxEXPAND, 5 );
+ bSizerFileStatus->Add( bSizerStatusRight, 1, wxEXPAND, 5 );
- bSizerFileStatus->Add( bSizerStatusRight, 1, wxEXPAND, 5 );
+ bSizer451->Add( bSizerFileStatus, 1, wxEXPAND, 5 );
- bSizer451->Add( bSizerFileStatus, 1, wxEXPAND, 5 );
+ m_staticTextFullStatus = new wxStaticText( m_panelStatusBar, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextFullStatus->Wrap( -1 );
+ m_staticTextFullStatus->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
- m_staticTextFullStatus = new wxStaticText( m_panelStatusBar, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextFullStatus->Wrap( -1 );
- m_staticTextFullStatus->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
+ bSizer451->Add( m_staticTextFullStatus, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
- bSizer451->Add( m_staticTextFullStatus, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+ m_panelStatusBar->SetSizer( bSizer451 );
+ m_panelStatusBar->Layout();
+ bSizer451->Fit( m_panelStatusBar );
+ bSizer1711->Add( m_panelStatusBar, 0, wxEXPAND, 5 );
- m_panelStatusBar->SetSizer( bSizer451 );
- m_panelStatusBar->Layout();
- bSizer451->Fit( m_panelStatusBar );
- bSizer1711->Add( m_panelStatusBar, 0, wxEXPAND, 5 );
+ m_panelCenter->SetSizer( bSizer1711 );
+ m_panelCenter->Layout();
+ bSizer1711->Fit( m_panelCenter );
+ bSizerPanelHolder->Add( m_panelCenter, 1, wxEXPAND, 5 );
- m_panelCenter->SetSizer( bSizer1711 );
- m_panelCenter->Layout();
- bSizer1711->Fit( m_panelCenter );
- bSizerPanelHolder->Add( m_panelCenter, 1, wxEXPAND, 5 );
+ m_panelSearch = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ wxBoxSizer* bSizer1713;
+ bSizer1713 = new wxBoxSizer( wxHORIZONTAL );
- m_panelSearch = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- wxBoxSizer* bSizer1713;
- bSizer1713 = new wxBoxSizer( wxHORIZONTAL );
+ m_bpButtonHideSearch = new wxBitmapButton( m_panelSearch, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ m_bpButtonHideSearch->SetToolTip( _("Close search bar") );
- m_bpButtonHideSearch = new wxBitmapButton( m_panelSearch, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- m_bpButtonHideSearch->SetToolTip( _("Close search bar") );
+ bSizer1713->Add( m_bpButtonHideSearch, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 );
- bSizer1713->Add( m_bpButtonHideSearch, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 );
+ m_staticText101 = new wxStaticText( m_panelSearch, wxID_ANY, _("Find:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText101->Wrap( -1 );
+ bSizer1713->Add( m_staticText101, 0, wxALIGN_CENTER_VERTICAL, 5 );
- m_staticText101 = new wxStaticText( m_panelSearch, wxID_ANY, _("Find:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText101->Wrap( -1 );
- bSizer1713->Add( m_staticText101, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ m_textCtrlSearchTxt = new wxTextCtrl( m_panelSearch, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), wxTE_PROCESS_ENTER|wxWANTS_CHARS );
+ bSizer1713->Add( m_textCtrlSearchTxt, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
- m_textCtrlSearchTxt = new wxTextCtrl( m_panelSearch, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1, -1 ), wxTE_PROCESS_ENTER|wxWANTS_CHARS );
- bSizer1713->Add( m_textCtrlSearchTxt, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
+ m_checkBoxMatchCase = new wxCheckBox( m_panelSearch, wxID_ANY, _("Match case"), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer1713->Add( m_checkBoxMatchCase, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
- m_checkBoxMatchCase = new wxCheckBox( m_panelSearch, wxID_ANY, _("Match case"), wxDefaultPosition, wxDefaultSize, 0 );
- bSizer1713->Add( m_checkBoxMatchCase, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+ m_panelSearch->SetSizer( bSizer1713 );
+ m_panelSearch->Layout();
+ bSizer1713->Fit( m_panelSearch );
+ bSizerPanelHolder->Add( m_panelSearch, 0, 0, 5 );
- m_panelSearch->SetSizer( bSizer1713 );
- m_panelSearch->Layout();
- bSizer1713->Fit( m_panelSearch );
- bSizerPanelHolder->Add( m_panelSearch, 0, 0, 5 );
+ m_panelLog = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panelLog->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- m_panelLog = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panelLog->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ bSizerLog = new wxBoxSizer( wxVERTICAL );
- bSizerLog = new wxBoxSizer( wxVERTICAL );
+ bSizer42 = new wxBoxSizer( wxHORIZONTAL );
- bSizer42 = new wxBoxSizer( wxHORIZONTAL );
+ m_bitmapSyncResult = new wxStaticBitmap( m_panelLog, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizer42->Add( m_bitmapSyncResult, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
- m_bitmapSyncResult = new wxStaticBitmap( m_panelLog, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), 0 );
- bSizer42->Add( m_bitmapSyncResult, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+ m_staticTextSyncResult = new wxStaticText( m_panelLog, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextSyncResult->Wrap( -1 );
+ m_staticTextSyncResult->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
- m_staticTextSyncResult = new wxStaticText( m_panelLog, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextSyncResult->Wrap( -1 );
- m_staticTextSyncResult->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
+ bSizer42->Add( m_staticTextSyncResult, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 10 );
- bSizer42->Add( m_staticTextSyncResult, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 10 );
+ bSizer42->Add( 10, 0, 0, 0, 5 );
- bSizer42->Add( 10, 0, 0, 0, 5 );
+ ffgSizer11 = new wxFlexGridSizer( 2, 0, 5, 5 );
+ ffgSizer11->SetFlexibleDirection( wxBOTH );
+ ffgSizer11->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
- ffgSizer11 = new wxFlexGridSizer( 2, 0, 5, 5 );
- ffgSizer11->SetFlexibleDirection( wxBOTH );
- ffgSizer11->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+ m_staticTextProcessed = new wxStaticText( m_panelLog, wxID_ANY, _("Processed:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextProcessed->Wrap( -1 );
+ ffgSizer11->Add( m_staticTextProcessed, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxRIGHT, 5 );
- m_staticTextProcessed = new wxStaticText( m_panelLog, wxID_ANY, _("Processed:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextProcessed->Wrap( -1 );
- ffgSizer11->Add( m_staticTextProcessed, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxRIGHT, 5 );
+ m_staticTextRemaining = new wxStaticText( m_panelLog, wxID_ANY, _("Remaining:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextRemaining->Wrap( -1 );
+ ffgSizer11->Add( m_staticTextRemaining, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
- m_staticTextRemaining = new wxStaticText( m_panelLog, wxID_ANY, _("Remaining:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextRemaining->Wrap( -1 );
- ffgSizer11->Add( m_staticTextRemaining, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+ bSizer42->Add( ffgSizer11, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 10 );
- bSizer42->Add( ffgSizer11, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 10 );
+ m_panelItemStats = new wxPanel( m_panelLog, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
+ m_panelItemStats->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
- m_panelItemStats = new wxPanel( m_panelLog, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
- m_panelItemStats->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+ wxBoxSizer* bSizer291;
+ bSizer291 = new wxBoxSizer( wxVERTICAL );
- wxBoxSizer* bSizer291;
- bSizer291 = new wxBoxSizer( wxVERTICAL );
+ ffgSizer111 = new wxFlexGridSizer( 0, 2, 5, 5 );
+ ffgSizer111->SetFlexibleDirection( wxBOTH );
+ ffgSizer111->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
- ffgSizer111 = new wxFlexGridSizer( 0, 2, 5, 5 );
- ffgSizer111->SetFlexibleDirection( wxBOTH );
- ffgSizer111->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+ wxBoxSizer* bSizer293;
+ bSizer293 = new wxBoxSizer( wxHORIZONTAL );
- wxBoxSizer* bSizer293;
- bSizer293 = new wxBoxSizer( wxHORIZONTAL );
+ m_bitmapItemStat = new wxStaticBitmap( m_panelItemStats, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer293->Add( m_bitmapItemStat, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
- m_bitmapItemStat = new wxStaticBitmap( m_panelItemStats, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer293->Add( m_bitmapItemStat, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+ bSizer293->Add( 0, 0, 1, 0, 5 );
- bSizer293->Add( 0, 0, 1, 0, 5 );
+ m_staticTextItemsProcessed = new wxStaticText( m_panelItemStats, wxID_ANY, _("dummy"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_staticTextItemsProcessed->Wrap( -1 );
+ m_staticTextItemsProcessed->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
- m_staticTextItemsProcessed = new wxStaticText( m_panelItemStats, wxID_ANY, _("dummy"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
- m_staticTextItemsProcessed->Wrap( -1 );
- m_staticTextItemsProcessed->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
+ bSizer293->Add( m_staticTextItemsProcessed, 0, wxALIGN_CENTER_VERTICAL, 5 );
- bSizer293->Add( m_staticTextItemsProcessed, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ ffgSizer111->Add( bSizer293, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
- ffgSizer111->Add( bSizer293, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+ m_staticTextBytesProcessed = new wxStaticText( m_panelItemStats, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextBytesProcessed->Wrap( -1 );
+ ffgSizer111->Add( m_staticTextBytesProcessed, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
- m_staticTextBytesProcessed = new wxStaticText( m_panelItemStats, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextBytesProcessed->Wrap( -1 );
- ffgSizer111->Add( m_staticTextBytesProcessed, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
+ m_staticTextItemsRemaining = new wxStaticText( m_panelItemStats, wxID_ANY, _("dummy"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_staticTextItemsRemaining->Wrap( -1 );
+ m_staticTextItemsRemaining->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
- m_staticTextItemsRemaining = new wxStaticText( m_panelItemStats, wxID_ANY, _("dummy"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
- m_staticTextItemsRemaining->Wrap( -1 );
- m_staticTextItemsRemaining->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
+ ffgSizer111->Add( m_staticTextItemsRemaining, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5 );
- ffgSizer111->Add( m_staticTextItemsRemaining, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5 );
+ m_staticTextBytesRemaining = new wxStaticText( m_panelItemStats, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextBytesRemaining->Wrap( -1 );
+ ffgSizer111->Add( m_staticTextBytesRemaining, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5 );
- m_staticTextBytesRemaining = new wxStaticText( m_panelItemStats, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextBytesRemaining->Wrap( -1 );
- ffgSizer111->Add( m_staticTextBytesRemaining, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5 );
+ bSizer291->Add( ffgSizer111, 0, wxALL, 5 );
- bSizer291->Add( ffgSizer111, 0, wxALL, 5 );
+ m_panelItemStats->SetSizer( bSizer291 );
+ m_panelItemStats->Layout();
+ bSizer291->Fit( m_panelItemStats );
+ bSizer42->Add( m_panelItemStats, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 10 );
- m_panelItemStats->SetSizer( bSizer291 );
- m_panelItemStats->Layout();
- bSizer291->Fit( m_panelItemStats );
- bSizer42->Add( m_panelItemStats, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 10 );
+ m_panelTimeStats = new wxPanel( m_panelLog, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
+ m_panelTimeStats->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
- m_panelTimeStats = new wxPanel( m_panelLog, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
- m_panelTimeStats->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+ wxBoxSizer* bSizer292;
+ bSizer292 = new wxBoxSizer( wxVERTICAL );
- wxBoxSizer* bSizer292;
- bSizer292 = new wxBoxSizer( wxVERTICAL );
+ ffgSizer112 = new wxFlexGridSizer( 0, 1, 5, 5 );
+ ffgSizer112->SetFlexibleDirection( wxBOTH );
+ ffgSizer112->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
- ffgSizer112 = new wxFlexGridSizer( 0, 1, 5, 5 );
- ffgSizer112->SetFlexibleDirection( wxBOTH );
- ffgSizer112->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+ wxBoxSizer* bSizer294;
+ bSizer294 = new wxBoxSizer( wxHORIZONTAL );
- wxBoxSizer* bSizer294;
- bSizer294 = new wxBoxSizer( wxHORIZONTAL );
+ m_bitmapTimeStat = new wxStaticBitmap( m_panelTimeStats, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer294->Add( m_bitmapTimeStat, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
- m_bitmapTimeStat = new wxStaticBitmap( m_panelTimeStats, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer294->Add( m_bitmapTimeStat, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+ bSizer294->Add( 0, 0, 1, 0, 5 );
- bSizer294->Add( 0, 0, 1, 0, 5 );
+ m_staticTextTimeElapsed = new wxStaticText( m_panelTimeStats, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextTimeElapsed->Wrap( -1 );
+ m_staticTextTimeElapsed->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
- m_staticTextTimeElapsed = new wxStaticText( m_panelTimeStats, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextTimeElapsed->Wrap( -1 );
- m_staticTextTimeElapsed->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
+ bSizer294->Add( m_staticTextTimeElapsed, 0, wxALIGN_CENTER_VERTICAL, 5 );
- bSizer294->Add( m_staticTextTimeElapsed, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ ffgSizer112->Add( bSizer294, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
- ffgSizer112->Add( bSizer294, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+ bSizer292->Add( ffgSizer112, 0, wxALL, 5 );
- bSizer292->Add( ffgSizer112, 0, wxALL, 5 );
+ m_panelTimeStats->SetSizer( bSizer292 );
+ m_panelTimeStats->Layout();
+ bSizer292->Fit( m_panelTimeStats );
+ bSizer42->Add( m_panelTimeStats, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 10 );
- m_panelTimeStats->SetSizer( bSizer292 );
- m_panelTimeStats->Layout();
- bSizer292->Fit( m_panelTimeStats );
- bSizer42->Add( m_panelTimeStats, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 10 );
+ bSizerLog->Add( bSizer42, 0, wxLEFT, 5 );
- bSizerLog->Add( bSizer42, 0, wxLEFT, 5 );
+ m_staticline70 = new wxStaticLine( m_panelLog, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizerLog->Add( m_staticline70, 0, wxEXPAND, 5 );
- m_staticline70 = new wxStaticLine( m_panelLog, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizerLog->Add( m_staticline70, 0, wxEXPAND, 5 );
+ m_panelLog->SetSizer( bSizerLog );
+ m_panelLog->Layout();
+ bSizerLog->Fit( m_panelLog );
+ bSizerPanelHolder->Add( m_panelLog, 0, 0, 5 );
- m_panelLog->SetSizer( bSizerLog );
- m_panelLog->Layout();
- bSizerLog->Fit( m_panelLog );
- bSizerPanelHolder->Add( m_panelLog, 0, 0, 5 );
+ m_panelConfig = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panelConfig->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- m_panelConfig = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panelConfig->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ bSizerConfig = new wxBoxSizer( wxHORIZONTAL );
- bSizerConfig = new wxBoxSizer( wxHORIZONTAL );
+ bSizerCfgHistoryButtons = new wxBoxSizer( wxHORIZONTAL );
- bSizerCfgHistoryButtons = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer17611;
+ bSizer17611 = new wxBoxSizer( wxVERTICAL );
- wxBoxSizer* bSizer17611;
- bSizer17611 = new wxBoxSizer( wxVERTICAL );
+ m_bpButtonNew = new wxBitmapButton( m_panelConfig, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ m_bpButtonNew->SetToolTip( _("dummy") );
- m_bpButtonNew = new wxBitmapButton( m_panelConfig, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- m_bpButtonNew->SetToolTip( _("dummy") );
+ bSizer17611->Add( m_bpButtonNew, 0, wxEXPAND, 5 );
- bSizer17611->Add( m_bpButtonNew, 0, wxEXPAND, 5 );
+ m_staticText951 = new wxStaticText( m_panelConfig, wxID_ANY, _("New"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText951->Wrap( -1 );
+ bSizer17611->Add( m_staticText951, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 2 );
- m_staticText951 = new wxStaticText( m_panelConfig, wxID_ANY, _("New"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText951->Wrap( -1 );
- bSizer17611->Add( m_staticText951, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 2 );
+ bSizerCfgHistoryButtons->Add( bSizer17611, 0, 0, 5 );
- bSizerCfgHistoryButtons->Add( bSizer17611, 0, 0, 5 );
+ wxBoxSizer* bSizer1761;
+ bSizer1761 = new wxBoxSizer( wxVERTICAL );
- wxBoxSizer* bSizer1761;
- bSizer1761 = new wxBoxSizer( wxVERTICAL );
+ m_bpButtonOpen = new wxBitmapButton( m_panelConfig, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ m_bpButtonOpen->SetToolTip( _("dummy") );
- m_bpButtonOpen = new wxBitmapButton( m_panelConfig, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- m_bpButtonOpen->SetToolTip( _("dummy") );
+ bSizer1761->Add( m_bpButtonOpen, 0, wxEXPAND, 5 );
- bSizer1761->Add( m_bpButtonOpen, 0, wxEXPAND, 5 );
+ m_staticText95 = new wxStaticText( m_panelConfig, wxID_ANY, _("Open..."), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText95->Wrap( -1 );
+ bSizer1761->Add( m_staticText95, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 2 );
- m_staticText95 = new wxStaticText( m_panelConfig, wxID_ANY, _("Open..."), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText95->Wrap( -1 );
- bSizer1761->Add( m_staticText95, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 2 );
+ bSizerCfgHistoryButtons->Add( bSizer1761, 0, 0, 5 );
- bSizerCfgHistoryButtons->Add( bSizer1761, 0, 0, 5 );
+ wxBoxSizer* bSizer175;
+ bSizer175 = new wxBoxSizer( wxVERTICAL );
- wxBoxSizer* bSizer175;
- bSizer175 = new wxBoxSizer( wxVERTICAL );
+ m_bpButtonSave = new wxBitmapButton( m_panelConfig, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ m_bpButtonSave->SetToolTip( _("dummy") );
- m_bpButtonSave = new wxBitmapButton( m_panelConfig, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- m_bpButtonSave->SetToolTip( _("dummy") );
+ bSizer175->Add( m_bpButtonSave, 0, wxEXPAND, 5 );
- bSizer175->Add( m_bpButtonSave, 0, wxEXPAND, 5 );
+ m_staticText961 = new wxStaticText( m_panelConfig, wxID_ANY, _("Save"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText961->Wrap( -1 );
+ bSizer175->Add( m_staticText961, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 2 );
- m_staticText961 = new wxStaticText( m_panelConfig, wxID_ANY, _("Save"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText961->Wrap( -1 );
- bSizer175->Add( m_staticText961, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 2 );
+ bSizerCfgHistoryButtons->Add( bSizer175, 0, 0, 5 );
- bSizerCfgHistoryButtons->Add( bSizer175, 0, 0, 5 );
+ wxBoxSizer* bSizer174;
+ bSizer174 = new wxBoxSizer( wxVERTICAL );
- wxBoxSizer* bSizer174;
- bSizer174 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer1772;
+ bSizer1772 = new wxBoxSizer( wxHORIZONTAL );
- wxBoxSizer* bSizer1772;
- bSizer1772 = new wxBoxSizer( wxHORIZONTAL );
+ m_bpButtonSaveAs = new wxBitmapButton( m_panelConfig, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ m_bpButtonSaveAs->SetToolTip( _("dummy") );
- m_bpButtonSaveAs = new wxBitmapButton( m_panelConfig, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- m_bpButtonSaveAs->SetToolTip( _("dummy") );
+ bSizer1772->Add( m_bpButtonSaveAs, 1, 0, 5 );
- bSizer1772->Add( m_bpButtonSaveAs, 1, 0, 5 );
+ m_bpButtonSaveAsBatch = new wxBitmapButton( m_panelConfig, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ m_bpButtonSaveAsBatch->SetToolTip( _("dummy") );
- m_bpButtonSaveAsBatch = new wxBitmapButton( m_panelConfig, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- m_bpButtonSaveAsBatch->SetToolTip( _("dummy") );
+ bSizer1772->Add( m_bpButtonSaveAsBatch, 1, 0, 5 );
- bSizer1772->Add( m_bpButtonSaveAsBatch, 1, 0, 5 );
+ bSizer174->Add( bSizer1772, 0, wxEXPAND, 5 );
- bSizer174->Add( bSizer1772, 0, wxEXPAND, 5 );
+ m_staticText97 = new wxStaticText( m_panelConfig, wxID_ANY, _("Save as..."), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText97->Wrap( -1 );
+ bSizer174->Add( m_staticText97, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 2 );
- m_staticText97 = new wxStaticText( m_panelConfig, wxID_ANY, _("Save as..."), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText97->Wrap( -1 );
- bSizer174->Add( m_staticText97, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 2 );
+ bSizerCfgHistoryButtons->Add( bSizer174, 0, 0, 5 );
- bSizerCfgHistoryButtons->Add( bSizer174, 0, 0, 5 );
+ bSizerConfig->Add( bSizerCfgHistoryButtons, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
- bSizerConfig->Add( bSizerCfgHistoryButtons, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+ m_staticline81 = new wxStaticLine( m_panelConfig, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizerConfig->Add( m_staticline81, 0, wxEXPAND|wxTOP, 5 );
- m_staticline81 = new wxStaticLine( m_panelConfig, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizerConfig->Add( m_staticline81, 0, wxEXPAND|wxTOP, 5 );
+ m_gridCfgHistory = new zen::Grid( m_panelConfig, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHSCROLL|wxVSCROLL );
+ m_gridCfgHistory->SetScrollRate( 5, 5 );
+ bSizerConfig->Add( m_gridCfgHistory, 1, wxEXPAND, 5 );
- m_gridCfgHistory = new zen::Grid( m_panelConfig, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHSCROLL|wxVSCROLL );
- m_gridCfgHistory->SetScrollRate( 5, 5 );
- bSizerConfig->Add( m_gridCfgHistory, 1, wxEXPAND, 5 );
+ m_panelConfig->SetSizer( bSizerConfig );
+ m_panelConfig->Layout();
+ bSizerConfig->Fit( m_panelConfig );
+ bSizerPanelHolder->Add( m_panelConfig, 0, 0, 5 );
- m_panelConfig->SetSizer( bSizerConfig );
- m_panelConfig->Layout();
- bSizerConfig->Fit( m_panelConfig );
- bSizerPanelHolder->Add( m_panelConfig, 0, 0, 5 );
+ m_panelViewFilter = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panelViewFilter->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- m_panelViewFilter = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panelViewFilter->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ bSizerViewFilter = new wxBoxSizer( wxHORIZONTAL );
- bSizerViewFilter = new wxBoxSizer( wxHORIZONTAL );
+ m_bpButtonToggleLog = new wxBitmapButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW|0 );
+ bSizerViewFilter->Add( m_bpButtonToggleLog, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
- m_bpButtonToggleLog = new wxBitmapButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW|0 );
- bSizerViewFilter->Add( m_bpButtonToggleLog, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+ bSizerViewFilter->Add( 0, 0, 1, wxEXPAND, 5 );
- bSizerViewFilter->Add( 0, 0, 1, wxEXPAND, 5 );
+ m_bpButtonViewType = new zen::ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ bSizerViewFilter->Add( m_bpButtonViewType, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
- m_bpButtonViewType = new zen::ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- bSizerViewFilter->Add( m_bpButtonViewType, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+ wxBoxSizer* bSizer300;
+ bSizer300 = new wxBoxSizer( wxHORIZONTAL );
- wxBoxSizer* bSizer300;
- bSizer300 = new wxBoxSizer( wxHORIZONTAL );
+ m_bpButtonShowExcluded = new zen::ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ bSizer300->Add( m_bpButtonShowExcluded, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxRIGHT, 5 );
- m_bpButtonShowExcluded = new zen::ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- bSizer300->Add( m_bpButtonShowExcluded, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxRIGHT, 5 );
+ m_bpButtonShowDeleteLeft = new zen::ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ bSizer300->Add( m_bpButtonShowDeleteLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
- m_bpButtonShowDeleteLeft = new zen::ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- bSizer300->Add( m_bpButtonShowDeleteLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+ m_bpButtonShowUpdateLeft = new zen::ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ bSizer300->Add( m_bpButtonShowUpdateLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
- m_bpButtonShowUpdateLeft = new zen::ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- bSizer300->Add( m_bpButtonShowUpdateLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+ m_bpButtonShowCreateLeft = new zen::ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ bSizer300->Add( m_bpButtonShowCreateLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
- m_bpButtonShowCreateLeft = new zen::ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- bSizer300->Add( m_bpButtonShowCreateLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+ m_bpButtonShowLeftOnly = new zen::ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ bSizer300->Add( m_bpButtonShowLeftOnly, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
- m_bpButtonShowLeftOnly = new zen::ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- bSizer300->Add( m_bpButtonShowLeftOnly, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+ m_bpButtonShowLeftNewer = new zen::ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ bSizer300->Add( m_bpButtonShowLeftNewer, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
- m_bpButtonShowLeftNewer = new zen::ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- bSizer300->Add( m_bpButtonShowLeftNewer, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+ m_bpButtonShowEqual = new zen::ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ bSizer300->Add( m_bpButtonShowEqual, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
- m_bpButtonShowEqual = new zen::ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- bSizer300->Add( m_bpButtonShowEqual, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+ m_bpButtonShowDoNothing = new zen::ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ bSizer300->Add( m_bpButtonShowDoNothing, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
- m_bpButtonShowDoNothing = new zen::ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- bSizer300->Add( m_bpButtonShowDoNothing, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+ m_bpButtonShowDifferent = new zen::ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ bSizer300->Add( m_bpButtonShowDifferent, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
- m_bpButtonShowDifferent = new zen::ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- bSizer300->Add( m_bpButtonShowDifferent, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+ m_bpButtonShowRightNewer = new zen::ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ bSizer300->Add( m_bpButtonShowRightNewer, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
- m_bpButtonShowRightNewer = new zen::ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- bSizer300->Add( m_bpButtonShowRightNewer, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+ m_bpButtonShowRightOnly = new zen::ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ bSizer300->Add( m_bpButtonShowRightOnly, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
- m_bpButtonShowRightOnly = new zen::ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- bSizer300->Add( m_bpButtonShowRightOnly, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+ m_bpButtonShowCreateRight = new zen::ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ bSizer300->Add( m_bpButtonShowCreateRight, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
- m_bpButtonShowCreateRight = new zen::ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- bSizer300->Add( m_bpButtonShowCreateRight, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+ m_bpButtonShowUpdateRight = new zen::ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ bSizer300->Add( m_bpButtonShowUpdateRight, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
- m_bpButtonShowUpdateRight = new zen::ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- bSizer300->Add( m_bpButtonShowUpdateRight, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+ m_bpButtonShowDeleteRight = new zen::ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ bSizer300->Add( m_bpButtonShowDeleteRight, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
- m_bpButtonShowDeleteRight = new zen::ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- bSizer300->Add( m_bpButtonShowDeleteRight, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+ m_bpButtonShowConflict = new zen::ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ bSizer300->Add( m_bpButtonShowConflict, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
- m_bpButtonShowConflict = new zen::ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- bSizer300->Add( m_bpButtonShowConflict, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+ m_bpButtonViewFilterContext = new wxBitmapButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ bSizer300->Add( m_bpButtonViewFilterContext, 0, wxEXPAND, 5 );
- m_bpButtonViewFilterContext = new wxBitmapButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- bSizer300->Add( m_bpButtonViewFilterContext, 0, wxEXPAND, 5 );
+ bSizerViewFilter->Add( bSizer300, 0, wxALIGN_CENTER_VERTICAL, 5 );
- bSizerViewFilter->Add( bSizer300, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ bSizerViewFilter->Add( 0, 0, 1, wxEXPAND, 5 );
- bSizerViewFilter->Add( 0, 0, 1, wxEXPAND, 5 );
+ m_staticText96 = new wxStaticText( m_panelViewFilter, wxID_ANY, _("Statistics:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText96->Wrap( -1 );
+ bSizerViewFilter->Add( m_staticText96, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
- m_staticText96 = new wxStaticText( m_panelViewFilter, wxID_ANY, _("Statistics:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText96->Wrap( -1 );
- bSizerViewFilter->Add( m_staticText96, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+ m_panelStatistics = new wxPanel( m_panelViewFilter, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL|wxBORDER_SUNKEN );
+ m_panelStatistics->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- m_panelStatistics = new wxPanel( m_panelViewFilter, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL|wxBORDER_SUNKEN );
- m_panelStatistics->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ bSizer1801 = new wxBoxSizer( wxVERTICAL );
- bSizer1801 = new wxBoxSizer( wxVERTICAL );
+ bSizerStatistics = new wxBoxSizer( wxHORIZONTAL );
- bSizerStatistics = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer173;
+ bSizer173 = new wxBoxSizer( wxVERTICAL );
- 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") );
- 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( m_bitmapDeleteLeft, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+ bSizer173->Add( 5, 2, 0, 0, 5 );
- bSizer173->Add( 5, 2, 0, 0, 5 );
+ bSizer173->Add( 0, 0, 1, wxEXPAND, 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") );
- 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 );
- bSizer173->Add( m_staticTextDeleteLeft, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+ bSizerStatistics->Add( bSizer173, 0, wxEXPAND, 5 );
- bSizerStatistics->Add( bSizer173, 0, wxEXPAND, 5 );
+ bSizerStatistics->Add( 5, 5, 0, 0, 5 );
- bSizerStatistics->Add( 5, 5, 0, 0, 5 );
+ wxBoxSizer* bSizer172;
+ bSizer172 = new wxBoxSizer( wxVERTICAL );
- wxBoxSizer* bSizer172;
- bSizer172 = new wxBoxSizer( wxVERTICAL );
+ m_bitmapUpdateLeft = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ m_bitmapUpdateLeft->SetToolTip( _("Number of files that will be updated") );
- m_bitmapUpdateLeft = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- m_bitmapUpdateLeft->SetToolTip( _("Number of files that will be updated") );
+ bSizer172->Add( m_bitmapUpdateLeft, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
- bSizer172->Add( m_bitmapUpdateLeft, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+ bSizer172->Add( 5, 2, 0, 0, 5 );
- bSizer172->Add( 5, 2, 0, 0, 5 );
+ bSizer172->Add( 0, 0, 1, wxEXPAND, 5 );
- bSizer172->Add( 0, 0, 1, wxEXPAND, 5 );
+ m_staticTextUpdateLeft = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextUpdateLeft->Wrap( -1 );
+ m_staticTextUpdateLeft->SetToolTip( _("Number of files that will be updated") );
- m_staticTextUpdateLeft = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextUpdateLeft->Wrap( -1 );
- m_staticTextUpdateLeft->SetToolTip( _("Number of files that will be updated") );
+ bSizer172->Add( m_staticTextUpdateLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
- bSizer172->Add( m_staticTextUpdateLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+ bSizerStatistics->Add( bSizer172, 0, wxEXPAND, 5 );
- bSizerStatistics->Add( bSizer172, 0, wxEXPAND, 5 );
+ bSizerStatistics->Add( 5, 5, 0, 0, 5 );
- bSizerStatistics->Add( 5, 5, 0, 0, 5 );
+ wxBoxSizer* bSizer1712;
+ bSizer1712 = new wxBoxSizer( wxVERTICAL );
- 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") );
- 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( m_bitmapCreateLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+ bSizer1712->Add( 5, 2, 0, 0, 5 );
- bSizer1712->Add( 5, 2, 0, 0, 5 );
+ bSizer1712->Add( 0, 0, 1, wxEXPAND, 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") );
- 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 );
- bSizer1712->Add( m_staticTextCreateLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+ bSizerStatistics->Add( bSizer1712, 0, wxEXPAND, 5 );
- bSizerStatistics->Add( bSizer1712, 0, wxEXPAND, 5 );
+ bSizerStatistics->Add( 5, 5, 0, 0, 5 );
- bSizerStatistics->Add( 5, 5, 0, 0, 5 );
+ bSizerData = new wxBoxSizer( wxVERTICAL );
- bSizerData = new wxBoxSizer( wxVERTICAL );
+ m_bitmapData = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ m_bitmapData->SetToolTip( _("Total bytes to copy") );
- 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( m_bitmapData, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+ bSizerData->Add( 5, 2, 0, 0, 5 );
- bSizerData->Add( 5, 2, 0, 0, 5 );
+ bSizerData->Add( 0, 0, 1, wxEXPAND, 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") );
- 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 );
- bSizerData->Add( m_staticTextData, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+ bSizerStatistics->Add( bSizerData, 0, wxEXPAND, 5 );
- bSizerStatistics->Add( bSizerData, 0, wxEXPAND, 5 );
+ bSizerStatistics->Add( 5, 5, 0, 0, 5 );
- bSizerStatistics->Add( 5, 5, 0, 0, 5 );
+ wxBoxSizer* bSizer178;
+ bSizer178 = new wxBoxSizer( wxVERTICAL );
- 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") );
- 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( m_bitmapCreateRight, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+ bSizer178->Add( 5, 2, 0, 0, 5 );
- bSizer178->Add( 5, 2, 0, 0, 5 );
+ bSizer178->Add( 0, 0, 1, wxEXPAND, 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") );
- 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 );
- bSizer178->Add( m_staticTextCreateRight, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+ bSizerStatistics->Add( bSizer178, 0, wxEXPAND, 5 );
- bSizerStatistics->Add( bSizer178, 0, wxEXPAND, 5 );
+ bSizerStatistics->Add( 5, 5, 0, 0, 5 );
- bSizerStatistics->Add( 5, 5, 0, 0, 5 );
+ wxBoxSizer* bSizer177;
+ bSizer177 = new wxBoxSizer( wxVERTICAL );
- wxBoxSizer* bSizer177;
- bSizer177 = new wxBoxSizer( wxVERTICAL );
+ m_bitmapUpdateRight = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ m_bitmapUpdateRight->SetToolTip( _("Number of files that will be updated") );
- m_bitmapUpdateRight = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- m_bitmapUpdateRight->SetToolTip( _("Number of files that will be updated") );
+ bSizer177->Add( m_bitmapUpdateRight, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
- bSizer177->Add( m_bitmapUpdateRight, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+ bSizer177->Add( 5, 2, 0, 0, 5 );
- bSizer177->Add( 5, 2, 0, 0, 5 );
+ bSizer177->Add( 0, 0, 1, wxEXPAND, 5 );
- bSizer177->Add( 0, 0, 1, wxEXPAND, 5 );
+ m_staticTextUpdateRight = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextUpdateRight->Wrap( -1 );
+ m_staticTextUpdateRight->SetToolTip( _("Number of files that will be updated") );
- m_staticTextUpdateRight = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextUpdateRight->Wrap( -1 );
- m_staticTextUpdateRight->SetToolTip( _("Number of files that will be updated") );
+ bSizer177->Add( m_staticTextUpdateRight, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
- bSizer177->Add( m_staticTextUpdateRight, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+ bSizerStatistics->Add( bSizer177, 0, wxEXPAND, 5 );
- bSizerStatistics->Add( bSizer177, 0, wxEXPAND, 5 );
+ bSizerStatistics->Add( 5, 5, 0, 0, 5 );
- bSizerStatistics->Add( 5, 5, 0, 0, 5 );
+ wxBoxSizer* bSizer176;
+ bSizer176 = new wxBoxSizer( wxVERTICAL );
- 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") );
- 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( m_bitmapDeleteRight, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+ bSizer176->Add( 5, 2, 0, 0, 5 );
- bSizer176->Add( 5, 2, 0, 0, 5 );
+ bSizer176->Add( 0, 0, 1, wxEXPAND, 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") );
- 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 );
- bSizer176->Add( m_staticTextDeleteRight, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+ bSizerStatistics->Add( bSizer176, 0, wxEXPAND, 5 );
- bSizerStatistics->Add( bSizer176, 0, wxEXPAND, 5 );
+ bSizer1801->Add( bSizerStatistics, 0, wxALL, 4 );
- bSizer1801->Add( bSizerStatistics, 0, wxALL, 4 );
+ m_panelStatistics->SetSizer( bSizer1801 );
+ m_panelStatistics->Layout();
+ bSizer1801->Fit( m_panelStatistics );
+ bSizerViewFilter->Add( m_panelStatistics, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
- m_panelStatistics->SetSizer( bSizer1801 );
- m_panelStatistics->Layout();
- bSizer1801->Fit( m_panelStatistics );
- bSizerViewFilter->Add( m_panelStatistics, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+ m_panelViewFilter->SetSizer( bSizerViewFilter );
+ m_panelViewFilter->Layout();
+ bSizerViewFilter->Fit( m_panelViewFilter );
+ bSizerPanelHolder->Add( m_panelViewFilter, 0, 0, 5 );
- m_panelViewFilter->SetSizer( bSizerViewFilter );
- m_panelViewFilter->Layout();
- bSizerViewFilter->Fit( m_panelViewFilter );
- bSizerPanelHolder->Add( m_panelViewFilter, 0, 0, 5 );
+ this->SetSizer( bSizerPanelHolder );
+ this->Layout();
+ bSizerPanelHolder->Fit( this );
- this->SetSizer( bSizerPanelHolder );
- this->Layout();
- bSizerPanelHolder->Fit( this );
-
- // Connect Events
- this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( MainDialogGenerated::onClose ) );
- m_menuFile->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onConfigNew ), this, m_menuItemNew->GetId());
- m_menuFile->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onConfigLoad ), this, m_menuItemLoad->GetId());
- m_menuFile->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onConfigSave ), this, m_menuItemSave->GetId());
- m_menuFile->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onConfigSaveAs ), this, m_menuItemSaveAs->GetId());
- m_menuFile->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onSaveAsBatchJob ), this, m_menuItemSaveAsBatch->GetId());
- m_menuFile->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onMenuQuit ), this, m_menuItemQuit->GetId());
- m_menuActions->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onToggleLog ), this, m_menuItemShowLog->GetId());
- m_menuActions->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onCompare ), this, m_menuItemCompare->GetId());
- m_menuActions->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onCmpSettings ), this, m_menuItemCompSettings->GetId());
- m_menuActions->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onConfigureFilter ), this, m_menuItemFilter->GetId());
- m_menuActions->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onSyncSettings ), this, m_menuItemSyncSettings->GetId());
- m_menuActions->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onStartSync ), this, m_menuItemSynchronize->GetId());
- m_menuTools->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onMenuOptions ), this, m_menuItemOptions->GetId());
- m_menuTools->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onMenuFindItem ), this, m_menuItemFind->GetId());
- m_menuTools->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onMenuExportFileList ), this, m_menuItemExportList->GetId());
- m_menuTools->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onMenuResetLayout ), this, m_menuItemResetLayout->GetId());
- m_menuHelp->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onShowHelp ), this, m_menuItemHelp->GetId());
- m_menuHelp->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onMenuCheckVersion ), this, m_menuItemCheckVersionNow->GetId());
- m_menuHelp->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onMenuCheckVersionAutomatically ), this, m_menuItemCheckVersionAuto->GetId());
- m_menuHelp->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onMenuAbout ), this, m_menuItemAbout->GetId());
- m_bpButtonCmpConfig->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onCmpSettings ), NULL, this );
- m_bpButtonCmpConfig->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::onCompSettingsContextMouse ), NULL, this );
- m_buttonCompare->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onCompare ), NULL, this );
- m_buttonCompare->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::onCompSettingsContextMouse ), NULL, this );
- m_bpButtonCmpContext->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onCompSettingsContext ), NULL, this );
- m_bpButtonCmpContext->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::onCompSettingsContextMouse ), NULL, this );
- m_bpButtonFilter->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onConfigureFilter ), NULL, this );
- m_bpButtonFilter->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::onGlobalFilterContextMouse ), NULL, this );
- m_bpButtonFilterContext->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onGlobalFilterContext ), NULL, this );
- m_bpButtonFilterContext->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::onGlobalFilterContextMouse ), NULL, this );
- m_bpButtonSyncConfig->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onSyncSettings ), NULL, this );
- m_bpButtonSyncConfig->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::onSyncSettingsContextMouse ), NULL, this );
- m_buttonSync->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onStartSync ), NULL, this );
- m_buttonSync->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::onSyncSettingsContextMouse ), NULL, this );
- m_bpButtonSyncContext->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onSyncSettingsContext ), NULL, this );
- m_bpButtonSyncContext->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::onSyncSettingsContextMouse ), NULL, this );
- m_bpButtonAddPair->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onTopFolderPairAdd ), NULL, this );
- m_bpButtonRemovePair->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onTopFolderPairRemove ), NULL, this );
- m_bpButtonSwapSides->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onSwapSides ), NULL, this );
- m_bpButtonLocalCompCfg->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onTopLocalCompCfg ), NULL, this );
- m_bpButtonLocalFilter->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onTopLocalFilterCfg ), NULL, this );
- m_bpButtonLocalSyncCfg->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onTopLocalSyncCfg ), NULL, this );
- m_bpButtonHideSearch->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onHideSearchPanel ), NULL, this );
- m_textCtrlSearchTxt->Connect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( MainDialogGenerated::onSearchGridEnter ), NULL, this );
- m_bpButtonNew->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onConfigNew ), NULL, this );
- m_bpButtonOpen->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onConfigLoad ), NULL, this );
- m_bpButtonSave->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onConfigSave ), NULL, this );
- m_bpButtonSaveAs->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onConfigSaveAs ), NULL, this );
- m_bpButtonSaveAsBatch->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onSaveAsBatchJob ), NULL, this );
- m_bpButtonToggleLog->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onToggleLog ), NULL, this );
- m_bpButtonViewType->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onToggleViewType ), NULL, this );
- m_bpButtonViewType->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::onViewTypeContextMouse ), NULL, this );
- m_bpButtonShowExcluded->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onToggleViewButton ), NULL, this );
- m_bpButtonShowExcluded->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::onViewFilterContextMouse ), NULL, this );
- m_bpButtonShowDeleteLeft->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onToggleViewButton ), NULL, this );
- m_bpButtonShowDeleteLeft->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::onViewFilterContextMouse ), NULL, this );
- m_bpButtonShowUpdateLeft->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onToggleViewButton ), NULL, this );
- m_bpButtonShowUpdateLeft->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::onViewFilterContextMouse ), NULL, this );
- m_bpButtonShowCreateLeft->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onToggleViewButton ), NULL, this );
- m_bpButtonShowCreateLeft->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::onViewFilterContextMouse ), NULL, this );
- m_bpButtonShowLeftOnly->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onToggleViewButton ), NULL, this );
- m_bpButtonShowLeftOnly->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::onViewFilterContextMouse ), NULL, this );
- m_bpButtonShowLeftNewer->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onToggleViewButton ), NULL, this );
- m_bpButtonShowLeftNewer->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::onViewFilterContextMouse ), NULL, this );
- m_bpButtonShowEqual->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onToggleViewButton ), NULL, this );
- m_bpButtonShowEqual->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::onViewFilterContextMouse ), NULL, this );
- m_bpButtonShowDoNothing->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onToggleViewButton ), NULL, this );
- m_bpButtonShowDoNothing->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::onViewFilterContextMouse ), NULL, this );
- m_bpButtonShowDifferent->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onToggleViewButton ), NULL, this );
- m_bpButtonShowDifferent->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::onViewFilterContextMouse ), NULL, this );
- m_bpButtonShowRightNewer->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onToggleViewButton ), NULL, this );
- m_bpButtonShowRightNewer->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::onViewFilterContextMouse ), NULL, this );
- m_bpButtonShowRightOnly->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onToggleViewButton ), NULL, this );
- m_bpButtonShowRightOnly->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::onViewFilterContextMouse ), NULL, this );
- m_bpButtonShowCreateRight->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onToggleViewButton ), NULL, this );
- m_bpButtonShowCreateRight->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::onViewFilterContextMouse ), NULL, this );
- m_bpButtonShowUpdateRight->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onToggleViewButton ), NULL, this );
- m_bpButtonShowUpdateRight->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::onViewFilterContextMouse ), NULL, this );
- m_bpButtonShowDeleteRight->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onToggleViewButton ), NULL, this );
- m_bpButtonShowDeleteRight->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::onViewFilterContextMouse ), NULL, this );
- m_bpButtonShowConflict->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onToggleViewButton ), NULL, this );
- m_bpButtonShowConflict->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::onViewFilterContextMouse ), NULL, this );
- m_bpButtonViewFilterContext->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onViewFilterContext ), NULL, this );
- m_bpButtonViewFilterContext->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::onViewFilterContextMouse ), NULL, this );
+ // Connect Events
+ this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( MainDialogGenerated::onClose ) );
+ m_menuFile->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onConfigNew ), this, m_menuItemNew->GetId());
+ m_menuFile->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onConfigLoad ), this, m_menuItemLoad->GetId());
+ m_menuFile->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onConfigSave ), this, m_menuItemSave->GetId());
+ m_menuFile->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onConfigSaveAs ), this, m_menuItemSaveAs->GetId());
+ m_menuFile->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onSaveAsBatchJob ), this, m_menuItemSaveAsBatch->GetId());
+ m_menuFile->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onMenuQuit ), this, m_menuItemQuit->GetId());
+ m_menuActions->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onToggleLog ), this, m_menuItemShowLog->GetId());
+ m_menuActions->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onCompare ), this, m_menuItemCompare->GetId());
+ m_menuActions->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onCmpSettings ), this, m_menuItemCompSettings->GetId());
+ m_menuActions->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onConfigureFilter ), this, m_menuItemFilter->GetId());
+ m_menuActions->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onSyncSettings ), this, m_menuItemSyncSettings->GetId());
+ m_menuActions->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onStartSync ), this, m_menuItemSynchronize->GetId());
+ m_menuTools->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onMenuOptions ), this, m_menuItemOptions->GetId());
+ m_menuTools->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onMenuFindItem ), this, m_menuItemFind->GetId());
+ m_menuTools->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onMenuExportFileList ), this, m_menuItemExportList->GetId());
+ m_menuTools->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onMenuResetLayout ), this, m_menuItemResetLayout->GetId());
+ m_menuHelp->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onShowHelp ), this, m_menuItemHelp->GetId());
+ m_menuHelp->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onMenuCheckVersion ), this, m_menuItemCheckVersionNow->GetId());
+ m_menuHelp->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onMenuCheckVersionAutomatically ), this, m_menuItemCheckVersionAuto->GetId());
+ m_menuHelp->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onMenuAbout ), this, m_menuItemAbout->GetId());
+ m_bpButtonCmpConfig->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onCmpSettings ), NULL, this );
+ m_bpButtonCmpConfig->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::onCompSettingsContextMouse ), NULL, this );
+ m_buttonCompare->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onCompare ), NULL, this );
+ m_buttonCompare->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::onCompSettingsContextMouse ), NULL, this );
+ m_bpButtonCmpContext->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onCompSettingsContext ), NULL, this );
+ m_bpButtonCmpContext->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::onCompSettingsContextMouse ), NULL, this );
+ m_bpButtonFilter->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onConfigureFilter ), NULL, this );
+ m_bpButtonFilter->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::onGlobalFilterContextMouse ), NULL, this );
+ m_bpButtonFilterContext->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onGlobalFilterContext ), NULL, this );
+ m_bpButtonFilterContext->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::onGlobalFilterContextMouse ), NULL, this );
+ m_bpButtonSyncConfig->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onSyncSettings ), NULL, this );
+ m_bpButtonSyncConfig->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::onSyncSettingsContextMouse ), NULL, this );
+ m_buttonSync->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onStartSync ), NULL, this );
+ m_buttonSync->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::onSyncSettingsContextMouse ), NULL, this );
+ m_bpButtonSyncContext->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onSyncSettingsContext ), NULL, this );
+ m_bpButtonSyncContext->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::onSyncSettingsContextMouse ), NULL, this );
+ m_bpButtonAddPair->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onTopFolderPairAdd ), NULL, this );
+ m_bpButtonRemovePair->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onTopFolderPairRemove ), NULL, this );
+ m_bpButtonSwapSides->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onSwapSides ), NULL, this );
+ m_bpButtonSwapSides->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::onSwapSidesMouse ), NULL, this );
+ m_bpButtonLocalCompCfg->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onTopLocalCompCfg ), NULL, this );
+ m_bpButtonLocalFilter->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onTopLocalFilterCfg ), NULL, this );
+ m_bpButtonLocalSyncCfg->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onTopLocalSyncCfg ), NULL, this );
+ m_bpButtonHideSearch->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onHideSearchPanel ), NULL, this );
+ m_textCtrlSearchTxt->Connect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( MainDialogGenerated::onSearchGridEnter ), NULL, this );
+ m_bpButtonNew->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onConfigNew ), NULL, this );
+ m_bpButtonOpen->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onConfigLoad ), NULL, this );
+ m_bpButtonSave->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onConfigSave ), NULL, this );
+ m_bpButtonSaveAs->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onConfigSaveAs ), NULL, this );
+ m_bpButtonSaveAsBatch->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onSaveAsBatchJob ), NULL, this );
+ m_bpButtonToggleLog->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onToggleLog ), NULL, this );
+ m_bpButtonViewType->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onToggleViewType ), NULL, this );
+ m_bpButtonViewType->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::onViewTypeContextMouse ), NULL, this );
+ m_bpButtonShowExcluded->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onToggleViewButton ), NULL, this );
+ m_bpButtonShowExcluded->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::onViewFilterContextMouse ), NULL, this );
+ m_bpButtonShowDeleteLeft->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onToggleViewButton ), NULL, this );
+ m_bpButtonShowDeleteLeft->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::onViewFilterContextMouse ), NULL, this );
+ m_bpButtonShowUpdateLeft->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onToggleViewButton ), NULL, this );
+ m_bpButtonShowUpdateLeft->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::onViewFilterContextMouse ), NULL, this );
+ m_bpButtonShowCreateLeft->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onToggleViewButton ), NULL, this );
+ m_bpButtonShowCreateLeft->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::onViewFilterContextMouse ), NULL, this );
+ m_bpButtonShowLeftOnly->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onToggleViewButton ), NULL, this );
+ m_bpButtonShowLeftOnly->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::onViewFilterContextMouse ), NULL, this );
+ m_bpButtonShowLeftNewer->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onToggleViewButton ), NULL, this );
+ m_bpButtonShowLeftNewer->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::onViewFilterContextMouse ), NULL, this );
+ m_bpButtonShowEqual->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onToggleViewButton ), NULL, this );
+ m_bpButtonShowEqual->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::onViewFilterContextMouse ), NULL, this );
+ m_bpButtonShowDoNothing->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onToggleViewButton ), NULL, this );
+ m_bpButtonShowDoNothing->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::onViewFilterContextMouse ), NULL, this );
+ m_bpButtonShowDifferent->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onToggleViewButton ), NULL, this );
+ m_bpButtonShowDifferent->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::onViewFilterContextMouse ), NULL, this );
+ m_bpButtonShowRightNewer->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onToggleViewButton ), NULL, this );
+ m_bpButtonShowRightNewer->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::onViewFilterContextMouse ), NULL, this );
+ m_bpButtonShowRightOnly->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onToggleViewButton ), NULL, this );
+ m_bpButtonShowRightOnly->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::onViewFilterContextMouse ), NULL, this );
+ m_bpButtonShowCreateRight->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onToggleViewButton ), NULL, this );
+ m_bpButtonShowCreateRight->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::onViewFilterContextMouse ), NULL, this );
+ m_bpButtonShowUpdateRight->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onToggleViewButton ), NULL, this );
+ m_bpButtonShowUpdateRight->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::onViewFilterContextMouse ), NULL, this );
+ m_bpButtonShowDeleteRight->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onToggleViewButton ), NULL, this );
+ m_bpButtonShowDeleteRight->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::onViewFilterContextMouse ), NULL, this );
+ m_bpButtonShowConflict->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onToggleViewButton ), NULL, this );
+ m_bpButtonShowConflict->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::onViewFilterContextMouse ), NULL, this );
+ m_bpButtonViewFilterContext->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onViewFilterContext ), NULL, this );
+ m_bpButtonViewFilterContext->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::onViewFilterContextMouse ), NULL, this );
}
MainDialogGenerated::~MainDialogGenerated()
@@ -1208,97 +1207,97 @@ MainDialogGenerated::~MainDialogGenerated()
FolderPairPanelGenerated::FolderPairPanelGenerated( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style, const wxString& name ) : wxPanel( parent, id, pos, size, style, name )
{
- wxBoxSizer* bSizer74;
- bSizer74 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer74;
+ bSizer74 = new wxBoxSizer( wxHORIZONTAL );
- m_panelLeft = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panelLeft->SetMinSize( wxSize( 1, -1 ) );
+ m_panelLeft = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panelLeft->SetMinSize( wxSize( 1,-1 ) );
- wxBoxSizer* bSizer134;
- bSizer134 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer134;
+ bSizer134 = new wxBoxSizer( wxHORIZONTAL );
- m_bpButtonFolderPairOptions = new wxBitmapButton( m_panelLeft, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- m_bpButtonFolderPairOptions->SetToolTip( _("Arrange folder pair") );
+ m_bpButtonFolderPairOptions = new wxBitmapButton( m_panelLeft, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ m_bpButtonFolderPairOptions->SetToolTip( _("Arrange folder pair") );
- bSizer134->Add( m_bpButtonFolderPairOptions, 0, wxEXPAND, 5 );
+ bSizer134->Add( m_bpButtonFolderPairOptions, 0, wxEXPAND, 5 );
- m_bpButtonRemovePair = new wxBitmapButton( m_panelLeft, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- m_bpButtonRemovePair->SetToolTip( _("Remove folder pair") );
+ m_bpButtonRemovePair = new wxBitmapButton( m_panelLeft, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ m_bpButtonRemovePair->SetToolTip( _("Remove folder pair") );
- bSizer134->Add( m_bpButtonRemovePair, 0, wxEXPAND, 5 );
+ bSizer134->Add( m_bpButtonRemovePair, 0, wxEXPAND, 5 );
- m_folderPathLeft = new fff::FolderHistoryBox( m_panelLeft, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
- bSizer134->Add( m_folderPathLeft, 1, wxALIGN_CENTER_VERTICAL, 5 );
+ m_folderPathLeft = new fff::FolderHistoryBox( m_panelLeft, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
+ bSizer134->Add( m_folderPathLeft, 1, wxALIGN_CENTER_VERTICAL, 5 );
- m_buttonSelectFolderLeft = new wxButton( m_panelLeft, wxID_ANY, _("Browse"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
- m_buttonSelectFolderLeft->SetToolTip( _("Select a folder") );
+ m_buttonSelectFolderLeft = new wxButton( m_panelLeft, wxID_ANY, _("Browse"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_buttonSelectFolderLeft->SetToolTip( _("Select a folder") );
- bSizer134->Add( m_buttonSelectFolderLeft, 0, wxEXPAND, 5 );
+ bSizer134->Add( m_buttonSelectFolderLeft, 0, wxEXPAND, 5 );
- m_bpButtonSelectAltFolderLeft = new wxBitmapButton( m_panelLeft, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- m_bpButtonSelectAltFolderLeft->SetToolTip( _("Access online storage") );
+ m_bpButtonSelectAltFolderLeft = new wxBitmapButton( m_panelLeft, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ m_bpButtonSelectAltFolderLeft->SetToolTip( _("Access online storage") );
- bSizer134->Add( m_bpButtonSelectAltFolderLeft, 0, wxEXPAND, 5 );
+ bSizer134->Add( m_bpButtonSelectAltFolderLeft, 0, wxEXPAND, 5 );
- m_panelLeft->SetSizer( bSizer134 );
- m_panelLeft->Layout();
- bSizer134->Fit( m_panelLeft );
- bSizer74->Add( m_panelLeft, 0, wxLEFT|wxEXPAND, 5 );
+ m_panelLeft->SetSizer( bSizer134 );
+ m_panelLeft->Layout();
+ bSizer134->Fit( m_panelLeft );
+ bSizer74->Add( m_panelLeft, 0, wxLEFT|wxEXPAND, 5 );
- m_panel20 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- wxBoxSizer* bSizer95;
- bSizer95 = new wxBoxSizer( wxHORIZONTAL );
+ m_panel20 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ wxBoxSizer* bSizer95;
+ bSizer95 = new wxBoxSizer( wxHORIZONTAL );
- m_bpButtonLocalCompCfg = new wxBitmapButton( m_panel20, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- m_bpButtonLocalCompCfg->SetToolTip( _("dummy") );
+ m_bpButtonLocalCompCfg = new wxBitmapButton( m_panel20, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ m_bpButtonLocalCompCfg->SetToolTip( _("dummy") );
- bSizer95->Add( m_bpButtonLocalCompCfg, 0, wxEXPAND, 5 );
+ bSizer95->Add( m_bpButtonLocalCompCfg, 0, wxEXPAND, 5 );
- m_bpButtonLocalFilter = new wxBitmapButton( m_panel20, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- m_bpButtonLocalFilter->SetToolTip( _("dummy") );
+ m_bpButtonLocalFilter = new wxBitmapButton( m_panel20, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ m_bpButtonLocalFilter->SetToolTip( _("dummy") );
- bSizer95->Add( m_bpButtonLocalFilter, 0, wxEXPAND, 5 );
+ bSizer95->Add( m_bpButtonLocalFilter, 0, wxEXPAND, 5 );
- m_bpButtonLocalSyncCfg = new wxBitmapButton( m_panel20, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- m_bpButtonLocalSyncCfg->SetToolTip( _("dummy") );
+ m_bpButtonLocalSyncCfg = new wxBitmapButton( m_panel20, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ m_bpButtonLocalSyncCfg->SetToolTip( _("dummy") );
- bSizer95->Add( m_bpButtonLocalSyncCfg, 0, wxEXPAND, 5 );
+ bSizer95->Add( m_bpButtonLocalSyncCfg, 0, wxEXPAND, 5 );
- m_panel20->SetSizer( bSizer95 );
- m_panel20->Layout();
- bSizer95->Fit( m_panel20 );
- bSizer74->Add( m_panel20, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
+ m_panel20->SetSizer( bSizer95 );
+ m_panel20->Layout();
+ bSizer95->Fit( m_panel20 );
+ bSizer74->Add( m_panel20, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
- m_panelRight = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panelRight->SetMinSize( wxSize( 1, -1 ) );
+ m_panelRight = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panelRight->SetMinSize( wxSize( 1,-1 ) );
- wxBoxSizer* bSizer135;
- bSizer135 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer135;
+ bSizer135 = new wxBoxSizer( wxHORIZONTAL );
- m_folderPathRight = new fff::FolderHistoryBox( m_panelRight, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
- bSizer135->Add( m_folderPathRight, 1, wxALIGN_CENTER_VERTICAL, 5 );
+ m_folderPathRight = new fff::FolderHistoryBox( m_panelRight, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
+ bSizer135->Add( m_folderPathRight, 1, wxALIGN_CENTER_VERTICAL, 5 );
- m_buttonSelectFolderRight = new wxButton( m_panelRight, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
- m_buttonSelectFolderRight->SetToolTip( _("Select a folder") );
+ m_buttonSelectFolderRight = new wxButton( m_panelRight, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_buttonSelectFolderRight->SetToolTip( _("Select a folder") );
- bSizer135->Add( m_buttonSelectFolderRight, 0, wxEXPAND, 5 );
+ bSizer135->Add( m_buttonSelectFolderRight, 0, wxEXPAND, 5 );
- m_bpButtonSelectAltFolderRight = new wxBitmapButton( m_panelRight, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- m_bpButtonSelectAltFolderRight->SetToolTip( _("Access online storage") );
+ m_bpButtonSelectAltFolderRight = new wxBitmapButton( m_panelRight, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ m_bpButtonSelectAltFolderRight->SetToolTip( _("Access online storage") );
- bSizer135->Add( m_bpButtonSelectAltFolderRight, 0, wxEXPAND, 5 );
+ bSizer135->Add( m_bpButtonSelectAltFolderRight, 0, wxEXPAND, 5 );
- m_panelRight->SetSizer( bSizer135 );
- m_panelRight->Layout();
- bSizer135->Fit( m_panelRight );
- bSizer74->Add( m_panelRight, 1, wxRIGHT|wxEXPAND, 5 );
+ m_panelRight->SetSizer( bSizer135 );
+ m_panelRight->Layout();
+ bSizer135->Fit( m_panelRight );
+ bSizer74->Add( m_panelRight, 1, wxRIGHT|wxEXPAND, 5 );
- this->SetSizer( bSizer74 );
- this->Layout();
+ this->SetSizer( bSizer74 );
+ this->Layout();
}
FolderPairPanelGenerated::~FolderPairPanelGenerated()
@@ -1307,1259 +1306,1259 @@ FolderPairPanelGenerated::~FolderPairPanelGenerated()
ConfigDlgGenerated::ConfigDlgGenerated( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
{
- this->SetSizeHints( wxDefaultSize, wxDefaultSize );
- this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+ this->SetSizeHints( wxDefaultSize, wxDefaultSize );
+ this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
- wxBoxSizer* bSizer7;
- bSizer7 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer7;
+ bSizer7 = new wxBoxSizer( wxVERTICAL );
- wxBoxSizer* bSizer190;
- bSizer190 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer190;
+ bSizer190 = new wxBoxSizer( wxHORIZONTAL );
- wxBoxSizer* bSizer1911;
- bSizer1911 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer1911;
+ bSizer1911 = new wxBoxSizer( wxVERTICAL );
- m_staticTextFolderPairLabel = new wxStaticText( this, wxID_ANY, _("Folder pair:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextFolderPairLabel->Wrap( -1 );
- bSizer1911->Add( m_staticTextFolderPairLabel, 0, wxALL, 5 );
+ m_staticTextFolderPairLabel = new wxStaticText( this, wxID_ANY, _("Folder pair:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextFolderPairLabel->Wrap( -1 );
+ bSizer1911->Add( m_staticTextFolderPairLabel, 0, wxALL, 5 );
- m_listBoxFolderPair = new wxListBox( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, wxLB_NEEDED_SB );
- bSizer1911->Add( m_listBoxFolderPair, 1, 0, 5 );
+ m_listBoxFolderPair = new wxListBox( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, wxLB_NEEDED_SB );
+ bSizer1911->Add( m_listBoxFolderPair, 1, 0, 5 );
- bSizer190->Add( bSizer1911, 0, wxEXPAND|wxLEFT, 5 );
+ bSizer190->Add( bSizer1911, 0, wxEXPAND|wxLEFT, 5 );
- m_notebook = new wxNotebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
- m_panelCompSettingsTab = new wxPanel( m_notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panelCompSettingsTab->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_notebook = new wxNotebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
+ m_panelCompSettingsTab = new wxPanel( m_notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panelCompSettingsTab->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- wxBoxSizer* bSizer275;
- bSizer275 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer275;
+ bSizer275 = new wxBoxSizer( wxVERTICAL );
- bSizerHeaderCompSettings = new wxBoxSizer( wxVERTICAL );
+ bSizerHeaderCompSettings = new wxBoxSizer( wxVERTICAL );
- m_staticTextMainCompSettings = new wxStaticText( m_panelCompSettingsTab, wxID_ANY, _("Main settings:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextMainCompSettings->Wrap( -1 );
- bSizerHeaderCompSettings->Add( m_staticTextMainCompSettings, 0, wxALL, 10 );
+ m_staticTextMainCompSettings = new wxStaticText( m_panelCompSettingsTab, wxID_ANY, _("Main settings:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextMainCompSettings->Wrap( -1 );
+ bSizerHeaderCompSettings->Add( m_staticTextMainCompSettings, 0, wxALL, 10 );
- m_checkBoxUseLocalCmpOptions = new wxCheckBox( m_panelCompSettingsTab, wxID_ANY, _("Use local settings:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_checkBoxUseLocalCmpOptions->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_checkBoxUseLocalCmpOptions = new wxCheckBox( m_panelCompSettingsTab, wxID_ANY, _("Use local settings:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_checkBoxUseLocalCmpOptions->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- bSizerHeaderCompSettings->Add( m_checkBoxUseLocalCmpOptions, 0, wxALL|wxEXPAND, 10 );
+ bSizerHeaderCompSettings->Add( m_checkBoxUseLocalCmpOptions, 0, wxALL|wxEXPAND, 10 );
- m_staticlineCompHeader = new wxStaticLine( m_panelCompSettingsTab, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizerHeaderCompSettings->Add( m_staticlineCompHeader, 0, wxEXPAND, 5 );
+ m_staticlineCompHeader = new wxStaticLine( m_panelCompSettingsTab, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizerHeaderCompSettings->Add( m_staticlineCompHeader, 0, wxEXPAND, 5 );
- bSizer275->Add( bSizerHeaderCompSettings, 0, wxEXPAND, 5 );
+ bSizer275->Add( bSizerHeaderCompSettings, 0, wxEXPAND, 5 );
- m_panelComparisonSettings = new wxPanel( m_panelCompSettingsTab, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panelComparisonSettings->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_panelComparisonSettings = new wxPanel( m_panelCompSettingsTab, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panelComparisonSettings->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- wxBoxSizer* bSizer2561;
- bSizer2561 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer2561;
+ bSizer2561 = new wxBoxSizer( wxHORIZONTAL );
- wxBoxSizer* bSizer159;
- bSizer159 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer159;
+ bSizer159 = new wxBoxSizer( wxVERTICAL );
- wxBoxSizer* bSizer178;
- bSizer178 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer178;
+ bSizer178 = new wxBoxSizer( wxHORIZONTAL );
- wxBoxSizer* bSizer182;
- bSizer182 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer182;
+ bSizer182 = new wxBoxSizer( wxVERTICAL );
- m_staticText91 = new wxStaticText( m_panelComparisonSettings, wxID_ANY, _("Select a variant:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText91->Wrap( -1 );
- bSizer182->Add( m_staticText91, 0, wxALL, 5 );
+ m_staticText91 = new wxStaticText( m_panelComparisonSettings, wxID_ANY, _("Select a variant:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText91->Wrap( -1 );
+ bSizer182->Add( m_staticText91, 0, wxALL, 5 );
- wxGridSizer* gSizer2;
- gSizer2 = new wxGridSizer( 0, 1, 0, 0 );
+ wxGridSizer* gSizer2;
+ gSizer2 = new wxGridSizer( 0, 1, 0, 0 );
- m_buttonByTimeSize = new zen::ToggleButton( m_panelComparisonSettings, wxID_ANY, _("File time and size"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
+ m_buttonByTimeSize = new zen::ToggleButton( m_panelComparisonSettings, wxID_ANY, _("File time and size"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonByTimeSize->SetDefault();
- m_buttonByTimeSize->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
- m_buttonByTimeSize->SetToolTip( _("dummy") );
+ m_buttonByTimeSize->SetDefault();
+ m_buttonByTimeSize->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
+ m_buttonByTimeSize->SetToolTip( _("dummy") );
- gSizer2->Add( m_buttonByTimeSize, 0, wxEXPAND, 5 );
+ gSizer2->Add( m_buttonByTimeSize, 0, wxEXPAND, 5 );
- m_buttonByContent = new zen::ToggleButton( m_panelComparisonSettings, wxID_ANY, _("File content"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
+ m_buttonByContent = new zen::ToggleButton( m_panelComparisonSettings, wxID_ANY, _("File content"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonByContent->SetDefault();
- m_buttonByContent->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
- m_buttonByContent->SetToolTip( _("dummy") );
+ m_buttonByContent->SetDefault();
+ m_buttonByContent->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
+ m_buttonByContent->SetToolTip( _("dummy") );
- gSizer2->Add( m_buttonByContent, 0, wxEXPAND, 5 );
+ gSizer2->Add( m_buttonByContent, 0, wxEXPAND, 5 );
- m_buttonBySize = new zen::ToggleButton( m_panelComparisonSettings, wxID_ANY, _("File size"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
+ m_buttonBySize = new zen::ToggleButton( m_panelComparisonSettings, wxID_ANY, _("File size"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonBySize->SetDefault();
- m_buttonBySize->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
- m_buttonBySize->SetToolTip( _("dummy") );
+ m_buttonBySize->SetDefault();
+ m_buttonBySize->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
+ m_buttonBySize->SetToolTip( _("dummy") );
- gSizer2->Add( m_buttonBySize, 0, wxEXPAND, 5 );
+ gSizer2->Add( m_buttonBySize, 0, wxEXPAND, 5 );
- bSizer182->Add( gSizer2, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+ bSizer182->Add( gSizer2, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
- bSizer178->Add( bSizer182, 0, wxALL, 5 );
+ bSizer178->Add( bSizer182, 0, wxALL, 5 );
- wxBoxSizer* bSizer2371;
- bSizer2371 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer2371;
+ bSizer2371 = new wxBoxSizer( wxHORIZONTAL );
- m_bitmapCompVariant = new wxStaticBitmap( m_panelComparisonSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), 0 );
- bSizer2371->Add( m_bitmapCompVariant, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+ m_bitmapCompVariant = new wxStaticBitmap( m_panelComparisonSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizer2371->Add( m_bitmapCompVariant, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
- m_staticTextCompVarDescription = new wxStaticText( m_panelComparisonSettings, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextCompVarDescription->Wrap( -1 );
- m_staticTextCompVarDescription->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+ m_staticTextCompVarDescription = new wxStaticText( m_panelComparisonSettings, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextCompVarDescription->Wrap( -1 );
+ m_staticTextCompVarDescription->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
- bSizer2371->Add( m_staticTextCompVarDescription, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+ bSizer2371->Add( m_staticTextCompVarDescription, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
- bSizer178->Add( bSizer2371, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+ bSizer178->Add( bSizer2371, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
- bSizer159->Add( bSizer178, 0, wxEXPAND, 5 );
+ bSizer159->Add( bSizer178, 0, wxEXPAND, 5 );
- m_staticline33 = new wxStaticLine( m_panelComparisonSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer159->Add( m_staticline33, 0, wxEXPAND, 5 );
+ m_staticline33 = new wxStaticLine( m_panelComparisonSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer159->Add( m_staticline33, 0, wxEXPAND, 5 );
- wxBoxSizer* bSizer1734;
- bSizer1734 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer1734;
+ bSizer1734 = new wxBoxSizer( wxHORIZONTAL );
- bSizer1734->Add( 0, 0, 1, 0, 5 );
+ bSizer1734->Add( 0, 0, 1, 0, 5 );
- wxBoxSizer* bSizer1721;
- bSizer1721 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer1721;
+ bSizer1721 = new wxBoxSizer( wxVERTICAL );
- m_checkBoxSymlinksInclude = new wxCheckBox( m_panelComparisonSettings, wxID_ANY, _("Include &symbolic links:"), wxDefaultPosition, wxDefaultSize, 0 );
- bSizer1721->Add( m_checkBoxSymlinksInclude, 0, wxALL, 5 );
+ m_checkBoxSymlinksInclude = new wxCheckBox( m_panelComparisonSettings, wxID_ANY, _("Include &symbolic links:"), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer1721->Add( m_checkBoxSymlinksInclude, 0, wxALL, 5 );
- wxBoxSizer* bSizer176;
- bSizer176 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer176;
+ bSizer176 = new wxBoxSizer( wxVERTICAL );
- m_radioBtnSymlinksFollow = new wxRadioButton( m_panelComparisonSettings, wxID_ANY, _("&Follow"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
- m_radioBtnSymlinksFollow->SetValue( true );
- bSizer176->Add( m_radioBtnSymlinksFollow, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+ m_radioBtnSymlinksFollow = new wxRadioButton( m_panelComparisonSettings, wxID_ANY, _("&Follow"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
+ m_radioBtnSymlinksFollow->SetValue( true );
+ bSizer176->Add( m_radioBtnSymlinksFollow, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
- m_radioBtnSymlinksDirect = new wxRadioButton( m_panelComparisonSettings, wxID_ANY, _("&Direct"), wxDefaultPosition, wxDefaultSize, 0 );
- bSizer176->Add( m_radioBtnSymlinksDirect, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+ m_radioBtnSymlinksDirect = new wxRadioButton( m_panelComparisonSettings, wxID_ANY, _("&Direct"), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer176->Add( m_radioBtnSymlinksDirect, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
- bSizer1721->Add( bSizer176, 0, wxLEFT|wxEXPAND, 15 );
+ bSizer1721->Add( bSizer176, 0, wxLEFT|wxEXPAND, 15 );
- bSizer1721->Add( 0, 0, 1, wxEXPAND, 5 );
+ bSizer1721->Add( 0, 0, 1, wxEXPAND, 5 );
- m_hyperlink24 = new wxHyperlinkCtrl( m_panelComparisonSettings, wxID_ANY, _("More information"), wxT("https://freefilesync.org/manual.php?topic=comparison-settings"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- m_hyperlink24->SetToolTip( _("https://freefilesync.org/manual.php?topic=comparison-settings") );
+ m_hyperlink24 = new wxHyperlinkCtrl( m_panelComparisonSettings, wxID_ANY, _("More information"), wxT("https://freefilesync.org/manual.php?topic=comparison-settings"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ m_hyperlink24->SetToolTip( _("https://freefilesync.org/manual.php?topic=comparison-settings") );
- bSizer1721->Add( m_hyperlink24, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+ bSizer1721->Add( m_hyperlink24, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
- bSizer1734->Add( bSizer1721, 0, wxALL|wxEXPAND, 5 );
+ bSizer1734->Add( bSizer1721, 0, wxALL|wxEXPAND, 5 );
- bSizer1734->Add( 0, 0, 1, 0, 5 );
+ bSizer1734->Add( 0, 0, 1, 0, 5 );
- m_staticline44 = new wxStaticLine( m_panelComparisonSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizer1734->Add( m_staticline44, 0, wxEXPAND, 5 );
+ m_staticline44 = new wxStaticLine( m_panelComparisonSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizer1734->Add( m_staticline44, 0, wxEXPAND, 5 );
- bSizer1734->Add( 0, 0, 1, 0, 5 );
+ bSizer1734->Add( 0, 0, 1, 0, 5 );
- wxBoxSizer* bSizer1733;
- bSizer1733 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer1733;
+ bSizer1733 = new wxBoxSizer( wxVERTICAL );
- m_staticText112 = new wxStaticText( m_panelComparisonSettings, wxID_ANY, _("&Ignore time shift [hh:mm]"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText112->Wrap( -1 );
- bSizer1733->Add( m_staticText112, 0, wxALL, 5 );
+ m_staticText112 = new wxStaticText( m_panelComparisonSettings, wxID_ANY, _("&Ignore time shift [hh:mm]"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText112->Wrap( -1 );
+ bSizer1733->Add( m_staticText112, 0, wxALL, 5 );
- m_textCtrlTimeShift = new wxTextCtrl( m_panelComparisonSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
- m_textCtrlTimeShift->SetToolTip( _("List of file time offsets to ignore") );
+ m_textCtrlTimeShift = new wxTextCtrl( m_panelComparisonSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
+ m_textCtrlTimeShift->SetToolTip( _("List of file time offsets to ignore") );
- bSizer1733->Add( m_textCtrlTimeShift, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
+ bSizer1733->Add( m_textCtrlTimeShift, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
- wxBoxSizer* bSizer197;
- bSizer197 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer197;
+ bSizer197 = new wxBoxSizer( wxHORIZONTAL );
- m_staticText1381 = new wxStaticText( m_panelComparisonSettings, wxID_ANY, _("Example:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText1381->Wrap( -1 );
- m_staticText1381->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+ m_staticText1381 = new wxStaticText( m_panelComparisonSettings, wxID_ANY, _("Example:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText1381->Wrap( -1 );
+ m_staticText1381->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
- bSizer197->Add( m_staticText1381, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+ bSizer197->Add( m_staticText1381, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
- m_staticText13811 = new wxStaticText( m_panelComparisonSettings, wxID_ANY, _("1, 2, 4:30"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText13811->Wrap( -1 );
- m_staticText13811->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+ m_staticText13811 = new wxStaticText( m_panelComparisonSettings, wxID_ANY, _("1, 2, 4:30"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText13811->Wrap( -1 );
+ m_staticText13811->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
- bSizer197->Add( m_staticText13811, 0, wxBOTTOM|wxRIGHT, 5 );
+ bSizer197->Add( m_staticText13811, 0, wxBOTTOM|wxRIGHT, 5 );
- bSizer1733->Add( bSizer197, 0, 0, 5 );
+ bSizer1733->Add( bSizer197, 0, 0, 5 );
- bSizer1733->Add( 0, 0, 1, wxEXPAND, 5 );
+ bSizer1733->Add( 0, 0, 1, wxEXPAND, 5 );
- m_hyperlink241 = new wxHyperlinkCtrl( m_panelComparisonSettings, wxID_ANY, _("Handle daylight saving time"), wxT("https://freefilesync.org/manual.php?topic=daylight-saving-time"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- m_hyperlink241->SetToolTip( _("https://freefilesync.org/manual.php?topic=daylight-saving-time") );
+ m_hyperlink241 = new wxHyperlinkCtrl( m_panelComparisonSettings, wxID_ANY, _("Handle daylight saving time"), wxT("https://freefilesync.org/manual.php?topic=daylight-saving-time"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ m_hyperlink241->SetToolTip( _("https://freefilesync.org/manual.php?topic=daylight-saving-time") );
- bSizer1733->Add( m_hyperlink241, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+ bSizer1733->Add( m_hyperlink241, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
- bSizer1734->Add( bSizer1733, 0, wxALL|wxEXPAND, 5 );
+ bSizer1734->Add( bSizer1733, 0, wxALL|wxEXPAND, 5 );
- bSizer1734->Add( 0, 0, 1, 0, 5 );
+ bSizer1734->Add( 0, 0, 1, 0, 5 );
- bSizer159->Add( bSizer1734, 0, wxEXPAND, 5 );
+ bSizer159->Add( bSizer1734, 0, wxEXPAND, 5 );
- m_staticline331 = new wxStaticLine( m_panelComparisonSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer159->Add( m_staticline331, 0, wxEXPAND, 5 );
+ m_staticline331 = new wxStaticLine( m_panelComparisonSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer159->Add( m_staticline331, 0, wxEXPAND, 5 );
- bSizerCompMisc = new wxBoxSizer( wxVERTICAL );
+ bSizerCompMisc = new wxBoxSizer( wxVERTICAL );
- wxBoxSizer* bSizer2781;
- bSizer2781 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer2781;
+ bSizer2781 = new wxBoxSizer( wxHORIZONTAL );
- wxFlexGridSizer* fgSizer61;
- fgSizer61 = new wxFlexGridSizer( 0, 2, 5, 5 );
- fgSizer61->SetFlexibleDirection( wxBOTH );
- fgSizer61->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+ wxFlexGridSizer* fgSizer61;
+ fgSizer61 = new wxFlexGridSizer( 0, 2, 5, 5 );
+ fgSizer61->SetFlexibleDirection( wxBOTH );
+ fgSizer61->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
- m_bitmapIgnoreErrors = new wxStaticBitmap( m_panelComparisonSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- fgSizer61->Add( m_bitmapIgnoreErrors, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+ m_bitmapIgnoreErrors = new wxStaticBitmap( m_panelComparisonSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ fgSizer61->Add( m_bitmapIgnoreErrors, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
- m_checkBoxIgnoreErrors = new wxCheckBox( m_panelComparisonSettings, wxID_ANY, _("Ignore errors"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
- fgSizer61->Add( m_checkBoxIgnoreErrors, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+ m_checkBoxIgnoreErrors = new wxCheckBox( m_panelComparisonSettings, wxID_ANY, _("Ignore errors"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ fgSizer61->Add( m_checkBoxIgnoreErrors, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
- m_bitmapRetryErrors = new wxStaticBitmap( m_panelComparisonSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- fgSizer61->Add( m_bitmapRetryErrors, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+ m_bitmapRetryErrors = new wxStaticBitmap( m_panelComparisonSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ fgSizer61->Add( m_bitmapRetryErrors, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
- m_checkBoxAutoRetry = new wxCheckBox( m_panelComparisonSettings, wxID_ANY, _("Automatic retry"), wxDefaultPosition, wxDefaultSize, 0 );
- fgSizer61->Add( m_checkBoxAutoRetry, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+ m_checkBoxAutoRetry = new wxCheckBox( m_panelComparisonSettings, wxID_ANY, _("Automatic retry"), wxDefaultPosition, wxDefaultSize, 0 );
+ fgSizer61->Add( m_checkBoxAutoRetry, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
- bSizer2781->Add( fgSizer61, 0, wxALIGN_CENTER_VERTICAL|wxALL, 10 );
+ bSizer2781->Add( fgSizer61, 0, wxALIGN_CENTER_VERTICAL|wxALL, 10 );
- fgSizerAutoRetry = new wxFlexGridSizer( 0, 2, 5, 10 );
- fgSizerAutoRetry->SetFlexibleDirection( wxBOTH );
- fgSizerAutoRetry->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+ fgSizerAutoRetry = new wxFlexGridSizer( 0, 2, 5, 10 );
+ fgSizerAutoRetry->SetFlexibleDirection( wxBOTH );
+ fgSizerAutoRetry->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
- m_staticText96 = new wxStaticText( m_panelComparisonSettings, wxID_ANY, _("Retry count:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText96->Wrap( -1 );
- fgSizerAutoRetry->Add( m_staticText96, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ m_staticText96 = new wxStaticText( m_panelComparisonSettings, wxID_ANY, _("Retry count:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText96->Wrap( -1 );
+ fgSizerAutoRetry->Add( m_staticText96, 0, wxALIGN_CENTER_VERTICAL, 5 );
- m_staticTextAutoRetryDelay = new wxStaticText( m_panelComparisonSettings, wxID_ANY, _("Delay (in seconds):"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextAutoRetryDelay->Wrap( -1 );
- fgSizerAutoRetry->Add( m_staticTextAutoRetryDelay, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ m_staticTextAutoRetryDelay = new wxStaticText( m_panelComparisonSettings, wxID_ANY, _("Delay (in seconds):"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextAutoRetryDelay->Wrap( -1 );
+ fgSizerAutoRetry->Add( m_staticTextAutoRetryDelay, 0, wxALIGN_CENTER_VERTICAL, 5 );
- m_spinCtrlAutoRetryCount = new wxSpinCtrl( m_panelComparisonSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1, -1 ), wxSP_ARROW_KEYS, 1, 2000000000, 1 );
- fgSizerAutoRetry->Add( m_spinCtrlAutoRetryCount, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ m_spinCtrlAutoRetryCount = new wxSpinCtrl( m_panelComparisonSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), wxSP_ARROW_KEYS, 1, 2000000000, 1 );
+ fgSizerAutoRetry->Add( m_spinCtrlAutoRetryCount, 0, wxALIGN_CENTER_VERTICAL, 5 );
- m_spinCtrlAutoRetryDelay = new wxSpinCtrl( m_panelComparisonSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1, -1 ), wxSP_ARROW_KEYS, 0, 2000000000, 0 );
- fgSizerAutoRetry->Add( m_spinCtrlAutoRetryDelay, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ m_spinCtrlAutoRetryDelay = new wxSpinCtrl( m_panelComparisonSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), wxSP_ARROW_KEYS, 0, 2000000000, 0 );
+ fgSizerAutoRetry->Add( m_spinCtrlAutoRetryDelay, 0, wxALIGN_CENTER_VERTICAL, 5 );
- bSizer2781->Add( fgSizerAutoRetry, 0, wxTOP|wxBOTTOM|wxRIGHT|wxALIGN_CENTER_VERTICAL, 10 );
+ bSizer2781->Add( fgSizerAutoRetry, 0, wxTOP|wxBOTTOM|wxRIGHT|wxALIGN_CENTER_VERTICAL, 10 );
- bSizerCompMisc->Add( bSizer2781, 0, wxEXPAND, 5 );
+ bSizerCompMisc->Add( bSizer2781, 0, wxEXPAND, 5 );
- m_staticline3311 = new wxStaticLine( m_panelComparisonSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizerCompMisc->Add( m_staticline3311, 0, wxEXPAND, 5 );
+ m_staticline3311 = new wxStaticLine( m_panelComparisonSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizerCompMisc->Add( m_staticline3311, 0, wxEXPAND, 5 );
- bSizer159->Add( bSizerCompMisc, 0, wxEXPAND, 5 );
+ bSizer159->Add( bSizerCompMisc, 0, wxEXPAND, 5 );
- bSizer2561->Add( bSizer159, 0, wxEXPAND, 5 );
+ bSizer2561->Add( bSizer159, 0, wxEXPAND, 5 );
- m_staticline751 = new wxStaticLine( m_panelComparisonSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizer2561->Add( m_staticline751, 0, wxEXPAND, 5 );
+ m_staticline751 = new wxStaticLine( m_panelComparisonSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizer2561->Add( m_staticline751, 0, wxEXPAND, 5 );
- bSizerPerformance = new wxBoxSizer( wxVERTICAL );
+ bSizerPerformance = new wxBoxSizer( wxVERTICAL );
- m_panel57 = new wxPanel( m_panelComparisonSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panel57->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+ m_panel57 = new wxPanel( m_panelComparisonSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panel57->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
- wxBoxSizer* bSizer2191;
- bSizer2191 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer2191;
+ bSizer2191 = new wxBoxSizer( wxHORIZONTAL );
- m_bitmapPerf = new wxStaticBitmap( m_panel57, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer2191->Add( m_bitmapPerf, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+ m_bitmapPerf = new wxStaticBitmap( m_panel57, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer2191->Add( m_bitmapPerf, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
- m_staticText13611 = new wxStaticText( m_panel57, wxID_ANY, _("Performance improvements:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText13611->Wrap( -1 );
- bSizer2191->Add( m_staticText13611, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 10 );
+ m_staticText13611 = new wxStaticText( m_panel57, wxID_ANY, _("Performance improvements:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText13611->Wrap( -1 );
+ bSizer2191->Add( m_staticText13611, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 10 );
- m_panel57->SetSizer( bSizer2191 );
- m_panel57->Layout();
- bSizer2191->Fit( m_panel57 );
- bSizerPerformance->Add( m_panel57, 0, wxEXPAND, 5 );
+ m_panel57->SetSizer( bSizer2191 );
+ m_panel57->Layout();
+ bSizer2191->Fit( m_panel57 );
+ bSizerPerformance->Add( m_panel57, 0, wxEXPAND, 5 );
- wxStaticLine* m_staticline75;
- m_staticline75 = new wxStaticLine( m_panelComparisonSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizerPerformance->Add( m_staticline75, 0, wxEXPAND, 5 );
+ wxStaticLine* m_staticline75;
+ m_staticline75 = new wxStaticLine( m_panelComparisonSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizerPerformance->Add( m_staticline75, 0, wxEXPAND, 5 );
- m_hyperlinkPerfDeRequired = new wxHyperlinkCtrl( m_panelComparisonSettings, wxID_ANY, _("Requires FreeFileSync Donation Edition"), wxT("https://freefilesync.org/faq.php#donation-edition"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- m_hyperlinkPerfDeRequired->SetToolTip( _("https://freefilesync.org/faq.php#donation-edition") );
+ m_hyperlinkPerfDeRequired = new wxHyperlinkCtrl( m_panelComparisonSettings, wxID_ANY, _("Requires FreeFileSync Donation Edition"), wxT("https://freefilesync.org/faq.php#donation-edition"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ m_hyperlinkPerfDeRequired->SetToolTip( _("https://freefilesync.org/faq.php#donation-edition") );
- bSizerPerformance->Add( m_hyperlinkPerfDeRequired, 0, wxALL, 10 );
+ bSizerPerformance->Add( m_hyperlinkPerfDeRequired, 0, wxALL, 10 );
- bSizer260 = new wxBoxSizer( wxVERTICAL );
+ bSizer260 = new wxBoxSizer( wxVERTICAL );
- m_staticTextPerfParallelOps = new wxStaticText( m_panelComparisonSettings, wxID_ANY, _("Parallel file operations:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextPerfParallelOps->Wrap( -1 );
- bSizer260->Add( m_staticTextPerfParallelOps, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
+ m_staticTextPerfParallelOps = new wxStaticText( m_panelComparisonSettings, wxID_ANY, _("Parallel file operations:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextPerfParallelOps->Wrap( -1 );
+ bSizer260->Add( m_staticTextPerfParallelOps, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
- m_scrolledWindowPerf = new wxScrolledWindow( m_panelComparisonSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHSCROLL|wxVSCROLL );
- m_scrolledWindowPerf->SetScrollRate( 5, 5 );
- m_scrolledWindowPerf->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_scrolledWindowPerf = new wxScrolledWindow( m_panelComparisonSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHSCROLL|wxVSCROLL );
+ m_scrolledWindowPerf->SetScrollRate( 5, 5 );
+ m_scrolledWindowPerf->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- fgSizerPerf = new wxFlexGridSizer( 0, 2, 5, 5 );
- fgSizerPerf->SetFlexibleDirection( wxBOTH );
- fgSizerPerf->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+ fgSizerPerf = new wxFlexGridSizer( 0, 2, 5, 5 );
+ fgSizerPerf->SetFlexibleDirection( wxBOTH );
+ fgSizerPerf->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
- m_scrolledWindowPerf->SetSizer( fgSizerPerf );
- m_scrolledWindowPerf->Layout();
- fgSizerPerf->Fit( m_scrolledWindowPerf );
- bSizer260->Add( m_scrolledWindowPerf, 1, wxALL|wxEXPAND, 5 );
+ m_scrolledWindowPerf->SetSizer( fgSizerPerf );
+ m_scrolledWindowPerf->Layout();
+ fgSizerPerf->Fit( m_scrolledWindowPerf );
+ bSizer260->Add( m_scrolledWindowPerf, 1, wxALL|wxEXPAND, 5 );
- bSizerPerformance->Add( bSizer260, 1, wxALL|wxEXPAND, 5 );
+ bSizerPerformance->Add( bSizer260, 1, wxALL|wxEXPAND, 5 );
- m_hyperlink1711 = new wxHyperlinkCtrl( m_panelComparisonSettings, wxID_ANY, _("How to get best performance?"), wxT("https://freefilesync.org/manual.php?topic=performance"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- m_hyperlink1711->SetToolTip( _("https://freefilesync.org/manual.php?topic=performance") );
+ m_hyperlink1711 = new wxHyperlinkCtrl( m_panelComparisonSettings, wxID_ANY, _("How to get best performance?"), wxT("https://freefilesync.org/manual.php?topic=performance"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ m_hyperlink1711->SetToolTip( _("https://freefilesync.org/manual.php?topic=performance") );
- bSizerPerformance->Add( m_hyperlink1711, 0, wxBOTTOM|wxRIGHT|wxLEFT, 10 );
+ bSizerPerformance->Add( m_hyperlink1711, 0, wxBOTTOM|wxRIGHT|wxLEFT, 10 );
- bSizer2561->Add( bSizerPerformance, 1, wxEXPAND, 5 );
+ bSizer2561->Add( bSizerPerformance, 1, wxEXPAND, 5 );
- m_panelComparisonSettings->SetSizer( bSizer2561 );
- m_panelComparisonSettings->Layout();
- bSizer2561->Fit( m_panelComparisonSettings );
- bSizer275->Add( m_panelComparisonSettings, 1, wxEXPAND, 5 );
+ m_panelComparisonSettings->SetSizer( bSizer2561 );
+ m_panelComparisonSettings->Layout();
+ bSizer2561->Fit( m_panelComparisonSettings );
+ bSizer275->Add( m_panelComparisonSettings, 1, wxEXPAND, 5 );
- m_panelCompSettingsTab->SetSizer( bSizer275 );
- m_panelCompSettingsTab->Layout();
- bSizer275->Fit( m_panelCompSettingsTab );
- m_notebook->AddPage( m_panelCompSettingsTab, _("dummy"), false );
- m_panelFilterSettingsTab = new wxPanel( m_notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panelFilterSettingsTab->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_panelCompSettingsTab->SetSizer( bSizer275 );
+ m_panelCompSettingsTab->Layout();
+ bSizer275->Fit( m_panelCompSettingsTab );
+ m_notebook->AddPage( m_panelCompSettingsTab, _("dummy"), false );
+ m_panelFilterSettingsTab = new wxPanel( m_notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panelFilterSettingsTab->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- wxBoxSizer* bSizer278;
- bSizer278 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer278;
+ bSizer278 = new wxBoxSizer( wxVERTICAL );
- bSizerHeaderFilterSettings = new wxBoxSizer( wxVERTICAL );
+ bSizerHeaderFilterSettings = new wxBoxSizer( wxVERTICAL );
- m_staticTextMainFilterSettings = new wxStaticText( m_panelFilterSettingsTab, wxID_ANY, _("Main settings:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextMainFilterSettings->Wrap( -1 );
- bSizerHeaderFilterSettings->Add( m_staticTextMainFilterSettings, 0, wxALL, 10 );
+ m_staticTextMainFilterSettings = new wxStaticText( m_panelFilterSettingsTab, wxID_ANY, _("Main settings:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextMainFilterSettings->Wrap( -1 );
+ bSizerHeaderFilterSettings->Add( m_staticTextMainFilterSettings, 0, wxALL, 10 );
- m_staticTextLocalFilterSettings = new wxStaticText( m_panelFilterSettingsTab, wxID_ANY, _("Local settings:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextLocalFilterSettings->Wrap( -1 );
- bSizerHeaderFilterSettings->Add( m_staticTextLocalFilterSettings, 0, wxALL, 10 );
+ m_staticTextLocalFilterSettings = new wxStaticText( m_panelFilterSettingsTab, wxID_ANY, _("Local settings:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextLocalFilterSettings->Wrap( -1 );
+ bSizerHeaderFilterSettings->Add( m_staticTextLocalFilterSettings, 0, wxALL, 10 );
- m_staticlineFilterHeader = new wxStaticLine( m_panelFilterSettingsTab, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizerHeaderFilterSettings->Add( m_staticlineFilterHeader, 0, wxEXPAND, 5 );
+ m_staticlineFilterHeader = new wxStaticLine( m_panelFilterSettingsTab, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizerHeaderFilterSettings->Add( m_staticlineFilterHeader, 0, wxEXPAND, 5 );
- bSizer278->Add( bSizerHeaderFilterSettings, 0, wxEXPAND, 5 );
+ bSizer278->Add( bSizerHeaderFilterSettings, 0, wxEXPAND, 5 );
- wxBoxSizer* bSizer301;
- bSizer301 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer301;
+ bSizer301 = new wxBoxSizer( wxHORIZONTAL );
- wxBoxSizer* bSizer166;
- bSizer166 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer166;
+ bSizer166 = new wxBoxSizer( wxVERTICAL );
- bSizer166->Add( 0, 10, 0, 0, 5 );
+ bSizer166->Add( 0, 10, 0, 0, 5 );
- wxBoxSizer* bSizer1661;
- bSizer1661 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer1661;
+ bSizer1661 = new wxBoxSizer( wxHORIZONTAL );
- m_bitmapInclude = new wxStaticBitmap( m_panelFilterSettingsTab, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), 0 );
- bSizer1661->Add( m_bitmapInclude, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
+ m_bitmapInclude = new wxStaticBitmap( m_panelFilterSettingsTab, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizer1661->Add( m_bitmapInclude, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
- wxBoxSizer* bSizer1731;
- bSizer1731 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer1731;
+ bSizer1731 = new wxBoxSizer( wxVERTICAL );
- m_staticText78 = new wxStaticText( m_panelFilterSettingsTab, wxID_ANY, _("Include:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText78->Wrap( -1 );
- bSizer1731->Add( m_staticText78, 0, 0, 5 );
+ m_staticText78 = new wxStaticText( m_panelFilterSettingsTab, wxID_ANY, _("Include:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText78->Wrap( -1 );
+ bSizer1731->Add( m_staticText78, 0, 0, 5 );
- m_textCtrlInclude = new wxTextCtrl( m_panelFilterSettingsTab, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1, -1 ), wxTE_MULTILINE );
- bSizer1731->Add( m_textCtrlInclude, 1, wxEXPAND|wxTOP, 5 );
+ m_textCtrlInclude = new wxTextCtrl( m_panelFilterSettingsTab, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), wxTE_MULTILINE );
+ bSizer1731->Add( m_textCtrlInclude, 1, wxEXPAND|wxTOP, 5 );
- bSizer1661->Add( bSizer1731, 1, wxEXPAND, 5 );
+ bSizer1661->Add( bSizer1731, 1, wxEXPAND, 5 );
- bSizer166->Add( bSizer1661, 3, wxEXPAND|wxLEFT, 5 );
+ bSizer166->Add( bSizer1661, 3, wxEXPAND|wxLEFT, 5 );
- bSizer166->Add( 0, 10, 0, 0, 5 );
+ bSizer166->Add( 0, 10, 0, 0, 5 );
- wxBoxSizer* bSizer1651;
- bSizer1651 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer1651;
+ bSizer1651 = new wxBoxSizer( wxHORIZONTAL );
- m_bitmapExclude = new wxStaticBitmap( m_panelFilterSettingsTab, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), 0 );
- bSizer1651->Add( m_bitmapExclude, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+ m_bitmapExclude = new wxStaticBitmap( m_panelFilterSettingsTab, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizer1651->Add( m_bitmapExclude, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
- wxBoxSizer* bSizer1742;
- bSizer1742 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer1742;
+ bSizer1742 = new wxBoxSizer( wxVERTICAL );
- wxBoxSizer* bSizer189;
- bSizer189 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer189;
+ bSizer189 = new wxBoxSizer( wxHORIZONTAL );
- m_staticText77 = new wxStaticText( m_panelFilterSettingsTab, wxID_ANY, _("Exclude:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText77->Wrap( -1 );
- bSizer189->Add( m_staticText77, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ m_staticText77 = new wxStaticText( m_panelFilterSettingsTab, wxID_ANY, _("Exclude:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText77->Wrap( -1 );
+ bSizer189->Add( m_staticText77, 0, wxALIGN_CENTER_VERTICAL, 5 );
- bSizer189->Add( 0, 0, 1, wxEXPAND, 5 );
+ bSizer189->Add( 0, 0, 1, wxEXPAND, 5 );
- m_hyperlink171 = new wxHyperlinkCtrl( m_panelFilterSettingsTab, wxID_ANY, _("Show examples"), wxT("https://freefilesync.org/manual.php?topic=exclude-files"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- m_hyperlink171->SetToolTip( _("https://freefilesync.org/manual.php?topic=exclude-files") );
+ m_hyperlink171 = new wxHyperlinkCtrl( m_panelFilterSettingsTab, wxID_ANY, _("Show examples"), wxT("https://freefilesync.org/manual.php?topic=exclude-files"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ m_hyperlink171->SetToolTip( _("https://freefilesync.org/manual.php?topic=exclude-files") );
- bSizer189->Add( m_hyperlink171, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
+ bSizer189->Add( m_hyperlink171, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
- bSizer1742->Add( bSizer189, 0, wxEXPAND, 5 );
+ bSizer1742->Add( bSizer189, 0, wxEXPAND, 5 );
- m_textCtrlExclude = new wxTextCtrl( m_panelFilterSettingsTab, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1, -1 ), wxTE_MULTILINE );
- bSizer1742->Add( m_textCtrlExclude, 1, wxEXPAND|wxTOP, 5 );
+ m_textCtrlExclude = new wxTextCtrl( m_panelFilterSettingsTab, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), wxTE_MULTILINE );
+ bSizer1742->Add( m_textCtrlExclude, 1, wxEXPAND|wxTOP, 5 );
- bSizer1651->Add( bSizer1742, 1, wxEXPAND, 5 );
+ bSizer1651->Add( bSizer1742, 1, wxEXPAND, 5 );
- bSizer166->Add( bSizer1651, 5, wxEXPAND|wxLEFT, 5 );
+ bSizer166->Add( bSizer1651, 5, wxEXPAND|wxLEFT, 5 );
- bSizer301->Add( bSizer166, 1, wxEXPAND, 5 );
+ bSizer301->Add( bSizer166, 1, wxEXPAND, 5 );
- m_staticline24 = new wxStaticLine( m_panelFilterSettingsTab, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizer301->Add( m_staticline24, 0, wxEXPAND, 5 );
+ m_staticline24 = new wxStaticLine( m_panelFilterSettingsTab, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizer301->Add( m_staticline24, 0, wxEXPAND, 5 );
- wxBoxSizer* bSizer160;
- bSizer160 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer160;
+ bSizer160 = new wxBoxSizer( wxVERTICAL );
- wxBoxSizer* bSizer168;
- bSizer168 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer168;
+ bSizer168 = new wxBoxSizer( wxHORIZONTAL );
- m_bitmapFilterSize = new wxStaticBitmap( m_panelFilterSettingsTab, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), 0 );
- bSizer168->Add( m_bitmapFilterSize, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
+ m_bitmapFilterSize = new wxStaticBitmap( m_panelFilterSettingsTab, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizer168->Add( m_bitmapFilterSize, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
- wxBoxSizer* bSizer158;
- bSizer158 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer158;
+ bSizer158 = new wxBoxSizer( wxVERTICAL );
- m_staticText80 = new wxStaticText( m_panelFilterSettingsTab, wxID_ANY, _("File size:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText80->Wrap( -1 );
- bSizer158->Add( m_staticText80, 0, wxBOTTOM, 5 );
+ m_staticText80 = new wxStaticText( m_panelFilterSettingsTab, wxID_ANY, _("File size:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText80->Wrap( -1 );
+ bSizer158->Add( m_staticText80, 0, wxBOTTOM, 5 );
- wxBoxSizer* bSizer162;
- bSizer162 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer162;
+ bSizer162 = new wxBoxSizer( wxVERTICAL );
- m_staticText101 = new wxStaticText( m_panelFilterSettingsTab, wxID_ANY, _("Minimum:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText101->Wrap( -1 );
- bSizer162->Add( m_staticText101, 0, wxBOTTOM, 2 );
+ m_staticText101 = new wxStaticText( m_panelFilterSettingsTab, wxID_ANY, _("Minimum:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText101->Wrap( -1 );
+ bSizer162->Add( m_staticText101, 0, wxBOTTOM, 2 );
- m_spinCtrlMinSize = new wxSpinCtrl( m_panelFilterSettingsTab, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 2000000000, 0 );
- bSizer162->Add( m_spinCtrlMinSize, 0, wxEXPAND, 5 );
+ m_spinCtrlMinSize = new wxSpinCtrl( m_panelFilterSettingsTab, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 2000000000, 0 );
+ bSizer162->Add( m_spinCtrlMinSize, 0, wxEXPAND, 5 );
- wxArrayString m_choiceUnitMinSizeChoices;
- m_choiceUnitMinSize = new wxChoice( m_panelFilterSettingsTab, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnitMinSizeChoices, 0 );
- m_choiceUnitMinSize->SetSelection( 0 );
- bSizer162->Add( m_choiceUnitMinSize, 0, wxEXPAND, 5 );
+ wxArrayString m_choiceUnitMinSizeChoices;
+ m_choiceUnitMinSize = new wxChoice( m_panelFilterSettingsTab, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnitMinSizeChoices, 0 );
+ m_choiceUnitMinSize->SetSelection( 0 );
+ bSizer162->Add( m_choiceUnitMinSize, 0, wxEXPAND, 5 );
- bSizer158->Add( bSizer162, 0, wxBOTTOM|wxEXPAND, 5 );
+ bSizer158->Add( bSizer162, 0, wxBOTTOM|wxEXPAND, 5 );
- wxBoxSizer* bSizer163;
- bSizer163 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer163;
+ bSizer163 = new wxBoxSizer( wxVERTICAL );
- m_staticText102 = new wxStaticText( m_panelFilterSettingsTab, wxID_ANY, _("Maximum:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText102->Wrap( -1 );
- bSizer163->Add( m_staticText102, 0, wxBOTTOM, 2 );
+ m_staticText102 = new wxStaticText( m_panelFilterSettingsTab, wxID_ANY, _("Maximum:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText102->Wrap( -1 );
+ bSizer163->Add( m_staticText102, 0, wxBOTTOM, 2 );
- m_spinCtrlMaxSize = new wxSpinCtrl( m_panelFilterSettingsTab, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 2000000000, 0 );
- bSizer163->Add( m_spinCtrlMaxSize, 0, wxEXPAND, 5 );
+ m_spinCtrlMaxSize = new wxSpinCtrl( m_panelFilterSettingsTab, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 2000000000, 0 );
+ bSizer163->Add( m_spinCtrlMaxSize, 0, wxEXPAND, 5 );
- wxArrayString m_choiceUnitMaxSizeChoices;
- m_choiceUnitMaxSize = new wxChoice( m_panelFilterSettingsTab, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnitMaxSizeChoices, 0 );
- m_choiceUnitMaxSize->SetSelection( 0 );
- bSizer163->Add( m_choiceUnitMaxSize, 0, wxEXPAND, 5 );
+ wxArrayString m_choiceUnitMaxSizeChoices;
+ m_choiceUnitMaxSize = new wxChoice( m_panelFilterSettingsTab, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnitMaxSizeChoices, 0 );
+ m_choiceUnitMaxSize->SetSelection( 0 );
+ bSizer163->Add( m_choiceUnitMaxSize, 0, wxEXPAND, 5 );
- bSizer158->Add( bSizer163, 0, wxEXPAND, 5 );
+ bSizer158->Add( bSizer163, 0, wxEXPAND, 5 );
- bSizer168->Add( bSizer158, 1, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+ bSizer168->Add( bSizer158, 1, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
- bSizer160->Add( bSizer168, 2, wxEXPAND|wxALL, 5 );
+ bSizer160->Add( bSizer168, 2, wxEXPAND|wxALL, 5 );
- m_staticline23 = new wxStaticLine( m_panelFilterSettingsTab, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer160->Add( m_staticline23, 0, wxEXPAND, 5 );
+ m_staticline23 = new wxStaticLine( m_panelFilterSettingsTab, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer160->Add( m_staticline23, 0, wxEXPAND, 5 );
- wxBoxSizer* bSizer167;
- bSizer167 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer167;
+ bSizer167 = new wxBoxSizer( wxHORIZONTAL );
- m_bitmapFilterDate = new wxStaticBitmap( m_panelFilterSettingsTab, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), 0 );
- bSizer167->Add( m_bitmapFilterDate, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+ m_bitmapFilterDate = new wxStaticBitmap( m_panelFilterSettingsTab, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizer167->Add( m_bitmapFilterDate, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
- wxBoxSizer* bSizer165;
- bSizer165 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer165;
+ bSizer165 = new wxBoxSizer( wxVERTICAL );
- m_staticText79 = new wxStaticText( m_panelFilterSettingsTab, wxID_ANY, _("Time span:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText79->Wrap( -1 );
- bSizer165->Add( m_staticText79, 0, wxBOTTOM, 5 );
+ m_staticText79 = new wxStaticText( m_panelFilterSettingsTab, wxID_ANY, _("Time span:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText79->Wrap( -1 );
+ bSizer165->Add( m_staticText79, 0, wxBOTTOM, 5 );
- wxArrayString m_choiceUnitTimespanChoices;
- m_choiceUnitTimespan = new wxChoice( m_panelFilterSettingsTab, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnitTimespanChoices, 0 );
- m_choiceUnitTimespan->SetSelection( 0 );
- bSizer165->Add( m_choiceUnitTimespan, 0, wxEXPAND, 5 );
+ wxArrayString m_choiceUnitTimespanChoices;
+ m_choiceUnitTimespan = new wxChoice( m_panelFilterSettingsTab, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnitTimespanChoices, 0 );
+ m_choiceUnitTimespan->SetSelection( 0 );
+ bSizer165->Add( m_choiceUnitTimespan, 0, wxEXPAND, 5 );
- m_spinCtrlTimespan = new wxSpinCtrl( m_panelFilterSettingsTab, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 2000000000, 0 );
- bSizer165->Add( m_spinCtrlTimespan, 0, wxEXPAND, 5 );
+ m_spinCtrlTimespan = new wxSpinCtrl( m_panelFilterSettingsTab, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 2000000000, 0 );
+ bSizer165->Add( m_spinCtrlTimespan, 0, wxEXPAND, 5 );
- bSizer167->Add( bSizer165, 1, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+ bSizer167->Add( bSizer165, 1, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
- bSizer160->Add( bSizer167, 1, wxEXPAND|wxALL, 5 );
+ bSizer160->Add( bSizer167, 1, wxEXPAND|wxALL, 5 );
- m_staticline231 = new wxStaticLine( m_panelFilterSettingsTab, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer160->Add( m_staticline231, 0, wxEXPAND, 5 );
+ m_staticline231 = new wxStaticLine( m_panelFilterSettingsTab, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer160->Add( m_staticline231, 0, wxEXPAND, 5 );
- bSizer301->Add( bSizer160, 0, wxEXPAND, 5 );
+ bSizer301->Add( bSizer160, 0, wxEXPAND, 5 );
- bSizer278->Add( bSizer301, 1, wxEXPAND, 5 );
+ bSizer278->Add( bSizer301, 1, wxEXPAND, 5 );
- wxBoxSizer* bSizer302;
- bSizer302 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer302;
+ bSizer302 = new wxBoxSizer( wxHORIZONTAL );
- m_staticTextFilterDescr = new wxStaticText( m_panelFilterSettingsTab, wxID_ANY, _("Select filter rules to exclude certain files from synchronization. Enter file paths relative to their corresponding folder pair."), wxDefaultPosition, wxSize( -1, -1 ), 0 );
- m_staticTextFilterDescr->Wrap( -1 );
- m_staticTextFilterDescr->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+ m_staticTextFilterDescr = new wxStaticText( m_panelFilterSettingsTab, wxID_ANY, _("Select filter rules to exclude certain files from synchronization. Enter file paths relative to their corresponding folder pair."), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_staticTextFilterDescr->Wrap( -1 );
+ m_staticTextFilterDescr->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
- bSizer302->Add( m_staticTextFilterDescr, 1, wxALL|wxALIGN_CENTER_VERTICAL, 10 );
+ bSizer302->Add( m_staticTextFilterDescr, 1, wxALL|wxALIGN_CENTER_VERTICAL, 10 );
- wxBoxSizer* bSizer303;
- bSizer303 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer303;
+ bSizer303 = new wxBoxSizer( wxHORIZONTAL );
- m_buttonDefault = new wxButton( m_panelFilterSettingsTab, wxID_ANY, _("&Default"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
- bSizer303->Add( m_buttonDefault, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ m_buttonDefault = new wxButton( m_panelFilterSettingsTab, wxID_ANY, _("&Default"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizer303->Add( m_buttonDefault, 0, wxALIGN_CENTER_VERTICAL, 5 );
- m_bpButtonDefaultContext = new wxBitmapButton( m_panelFilterSettingsTab, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- bSizer303->Add( m_bpButtonDefaultContext, 0, wxEXPAND, 5 );
+ m_bpButtonDefaultContext = new wxBitmapButton( m_panelFilterSettingsTab, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ bSizer303->Add( m_bpButtonDefaultContext, 0, wxEXPAND, 5 );
- bSizer302->Add( bSizer303, 0, wxTOP|wxBOTTOM|wxLEFT|wxALIGN_CENTER_VERTICAL, 10 );
+ bSizer302->Add( bSizer303, 0, wxTOP|wxBOTTOM|wxLEFT|wxALIGN_CENTER_VERTICAL, 10 );
- m_buttonClear = new wxButton( m_panelFilterSettingsTab, wxID_ANY, _("C&lear"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
- bSizer302->Add( m_buttonClear, 0, wxALL|wxALIGN_CENTER_VERTICAL, 10 );
+ m_buttonClear = new wxButton( m_panelFilterSettingsTab, wxID_ANY, _("C&lear"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizer302->Add( m_buttonClear, 0, wxALL|wxALIGN_CENTER_VERTICAL, 10 );
- bSizer278->Add( bSizer302, 0, wxEXPAND, 5 );
+ bSizer278->Add( bSizer302, 0, wxEXPAND, 5 );
- m_panelFilterSettingsTab->SetSizer( bSizer278 );
- m_panelFilterSettingsTab->Layout();
- bSizer278->Fit( m_panelFilterSettingsTab );
- m_notebook->AddPage( m_panelFilterSettingsTab, _("dummy"), true );
- m_panelSyncSettingsTab = new wxPanel( m_notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panelSyncSettingsTab->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_panelFilterSettingsTab->SetSizer( bSizer278 );
+ m_panelFilterSettingsTab->Layout();
+ bSizer278->Fit( m_panelFilterSettingsTab );
+ m_notebook->AddPage( m_panelFilterSettingsTab, _("dummy"), true );
+ m_panelSyncSettingsTab = new wxPanel( m_notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panelSyncSettingsTab->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- wxBoxSizer* bSizer276;
- bSizer276 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer276;
+ bSizer276 = new wxBoxSizer( wxVERTICAL );
- bSizerHeaderSyncSettings = new wxBoxSizer( wxVERTICAL );
+ bSizerHeaderSyncSettings = new wxBoxSizer( wxVERTICAL );
- m_staticTextMainSyncSettings = new wxStaticText( m_panelSyncSettingsTab, wxID_ANY, _("Main settings:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextMainSyncSettings->Wrap( -1 );
- bSizerHeaderSyncSettings->Add( m_staticTextMainSyncSettings, 0, wxALL, 10 );
+ m_staticTextMainSyncSettings = new wxStaticText( m_panelSyncSettingsTab, wxID_ANY, _("Main settings:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextMainSyncSettings->Wrap( -1 );
+ bSizerHeaderSyncSettings->Add( m_staticTextMainSyncSettings, 0, wxALL, 10 );
- m_checkBoxUseLocalSyncOptions = new wxCheckBox( m_panelSyncSettingsTab, wxID_ANY, _("Use local settings:"), wxDefaultPosition, wxDefaultSize, 0 );
- bSizerHeaderSyncSettings->Add( m_checkBoxUseLocalSyncOptions, 0, wxALL|wxEXPAND, 10 );
+ m_checkBoxUseLocalSyncOptions = new wxCheckBox( m_panelSyncSettingsTab, wxID_ANY, _("Use local settings:"), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizerHeaderSyncSettings->Add( m_checkBoxUseLocalSyncOptions, 0, wxALL|wxEXPAND, 10 );
- m_staticlineSyncHeader = new wxStaticLine( m_panelSyncSettingsTab, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizerHeaderSyncSettings->Add( m_staticlineSyncHeader, 0, wxEXPAND, 5 );
+ m_staticlineSyncHeader = new wxStaticLine( m_panelSyncSettingsTab, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizerHeaderSyncSettings->Add( m_staticlineSyncHeader, 0, wxEXPAND, 5 );
- bSizer276->Add( bSizerHeaderSyncSettings, 0, wxEXPAND, 5 );
+ bSizer276->Add( bSizerHeaderSyncSettings, 0, wxEXPAND, 5 );
- m_panelSyncSettings = new wxPanel( m_panelSyncSettingsTab, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panelSyncSettings->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_panelSyncSettings = new wxPanel( m_panelSyncSettingsTab, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panelSyncSettings->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- wxBoxSizer* bSizer232;
- bSizer232 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer232;
+ bSizer232 = new wxBoxSizer( wxVERTICAL );
- wxBoxSizer* bSizer237;
- bSizer237 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer237;
+ bSizer237 = new wxBoxSizer( wxHORIZONTAL );
- wxBoxSizer* bSizer235;
- bSizer235 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer235;
+ bSizer235 = new wxBoxSizer( wxVERTICAL );
- m_staticText86 = new wxStaticText( m_panelSyncSettings, wxID_ANY, _("Select a variant:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText86->Wrap( -1 );
- bSizer235->Add( m_staticText86, 0, wxALL, 5 );
+ m_staticText86 = new wxStaticText( m_panelSyncSettings, wxID_ANY, _("Select a variant:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText86->Wrap( -1 );
+ bSizer235->Add( m_staticText86, 0, wxALL, 5 );
- wxGridSizer* gSizer1;
- gSizer1 = new wxGridSizer( 0, 1, 0, 0 );
+ wxGridSizer* gSizer1;
+ gSizer1 = new wxGridSizer( 0, 1, 0, 0 );
- m_buttonTwoWay = new zen::ToggleButton( m_panelSyncSettings, wxID_ANY, _("Two way"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
+ m_buttonTwoWay = new zen::ToggleButton( m_panelSyncSettings, wxID_ANY, _("Two way"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonTwoWay->SetDefault();
- m_buttonTwoWay->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
- m_buttonTwoWay->SetToolTip( _("dummy") );
+ m_buttonTwoWay->SetDefault();
+ m_buttonTwoWay->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
+ m_buttonTwoWay->SetToolTip( _("dummy") );
- gSizer1->Add( m_buttonTwoWay, 0, wxEXPAND, 5 );
+ gSizer1->Add( m_buttonTwoWay, 0, wxEXPAND, 5 );
- m_buttonMirror = new zen::ToggleButton( m_panelSyncSettings, wxID_ANY, _("Mirror"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
+ m_buttonMirror = new zen::ToggleButton( m_panelSyncSettings, wxID_ANY, _("Mirror"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonMirror->SetDefault();
- m_buttonMirror->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
- m_buttonMirror->SetToolTip( _("dummy") );
+ m_buttonMirror->SetDefault();
+ m_buttonMirror->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
+ m_buttonMirror->SetToolTip( _("dummy") );
- gSizer1->Add( m_buttonMirror, 0, wxEXPAND, 5 );
+ gSizer1->Add( m_buttonMirror, 0, wxEXPAND, 5 );
- m_buttonUpdate = new zen::ToggleButton( m_panelSyncSettings, wxID_ANY, _("Update"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
+ m_buttonUpdate = new zen::ToggleButton( m_panelSyncSettings, wxID_ANY, _("Update"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonUpdate->SetDefault();
- m_buttonUpdate->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
- m_buttonUpdate->SetToolTip( _("dummy") );
+ m_buttonUpdate->SetDefault();
+ m_buttonUpdate->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
+ m_buttonUpdate->SetToolTip( _("dummy") );
- gSizer1->Add( m_buttonUpdate, 0, wxEXPAND, 5 );
+ gSizer1->Add( m_buttonUpdate, 0, wxEXPAND, 5 );
- m_buttonCustom = new zen::ToggleButton( m_panelSyncSettings, wxID_ANY, _("Custom"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
+ m_buttonCustom = new zen::ToggleButton( m_panelSyncSettings, wxID_ANY, _("Custom"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonCustom->SetDefault();
- m_buttonCustom->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
- m_buttonCustom->SetToolTip( _("dummy") );
+ m_buttonCustom->SetDefault();
+ m_buttonCustom->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
+ m_buttonCustom->SetToolTip( _("dummy") );
- gSizer1->Add( m_buttonCustom, 0, wxEXPAND, 5 );
+ gSizer1->Add( m_buttonCustom, 0, wxEXPAND, 5 );
- bSizer235->Add( gSizer1, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+ bSizer235->Add( gSizer1, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
- bSizer237->Add( bSizer235, 0, wxALL, 5 );
+ bSizer237->Add( bSizer235, 0, wxALL, 5 );
- bSizer237->Add( 10, 0, 0, 0, 5 );
+ bSizer237->Add( 10, 0, 0, 0, 5 );
- wxBoxSizer* bSizer238;
- bSizer238 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer238;
+ bSizer238 = new wxBoxSizer( wxVERTICAL );
- bSizer238->Add( 0, 0, 1, wxEXPAND, 5 );
+ bSizer238->Add( 0, 0, 1, wxEXPAND, 5 );
- bSizerSyncDirHolder = new wxBoxSizer( wxHORIZONTAL );
+ bSizerSyncDirHolder = new wxBoxSizer( wxHORIZONTAL );
- bSizerSyncDirections = new wxBoxSizer( wxVERTICAL );
+ bSizerSyncDirections = new wxBoxSizer( wxVERTICAL );
- m_staticText184 = new wxStaticText( m_panelSyncSettings, wxID_ANY, _("Difference"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText184->Wrap( -1 );
- bSizerSyncDirections->Add( m_staticText184, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
+ m_staticText184 = new wxStaticText( m_panelSyncSettings, wxID_ANY, _("Difference"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText184->Wrap( -1 );
+ bSizerSyncDirections->Add( m_staticText184, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
- ffgSizer11 = new wxFlexGridSizer( 2, 0, 5, 5 );
- ffgSizer11->SetFlexibleDirection( wxBOTH );
- ffgSizer11->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+ ffgSizer11 = new wxFlexGridSizer( 2, 0, 5, 5 );
+ ffgSizer11->SetFlexibleDirection( wxBOTH );
+ ffgSizer11->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
- m_bitmapLeftOnly = new wxStaticBitmap( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), 0 );
- m_bitmapLeftOnly->SetToolTip( _("Item exists on left side only") );
+ m_bitmapLeftOnly = new wxStaticBitmap( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_bitmapLeftOnly->SetToolTip( _("Item exists on left side only") );
- ffgSizer11->Add( m_bitmapLeftOnly, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+ ffgSizer11->Add( m_bitmapLeftOnly, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
- m_bitmapLeftNewer = new wxStaticBitmap( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), 0 );
- m_bitmapLeftNewer->SetToolTip( _("Left side is newer") );
+ m_bitmapLeftNewer = new wxStaticBitmap( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_bitmapLeftNewer->SetToolTip( _("Left side is newer") );
- ffgSizer11->Add( m_bitmapLeftNewer, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+ ffgSizer11->Add( m_bitmapLeftNewer, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
- m_bitmapDifferent = new wxStaticBitmap( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), 0 );
- m_bitmapDifferent->SetToolTip( _("Items have different content") );
+ m_bitmapDifferent = new wxStaticBitmap( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_bitmapDifferent->SetToolTip( _("Items have different content") );
- ffgSizer11->Add( m_bitmapDifferent, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+ ffgSizer11->Add( m_bitmapDifferent, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
- m_bitmapConflict = new wxStaticBitmap( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), 0 );
- m_bitmapConflict->SetToolTip( _("Conflict/item cannot be categorized") );
+ m_bitmapConflict = new wxStaticBitmap( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_bitmapConflict->SetToolTip( _("Conflict/item cannot be categorized") );
- ffgSizer11->Add( m_bitmapConflict, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+ ffgSizer11->Add( m_bitmapConflict, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
- m_bitmapRightNewer = new wxStaticBitmap( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), 0 );
- m_bitmapRightNewer->SetToolTip( _("Right side is newer") );
+ m_bitmapRightNewer = new wxStaticBitmap( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_bitmapRightNewer->SetToolTip( _("Right side is newer") );
- ffgSizer11->Add( m_bitmapRightNewer, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+ ffgSizer11->Add( m_bitmapRightNewer, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
- m_bitmapRightOnly = new wxStaticBitmap( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), 0 );
- m_bitmapRightOnly->SetToolTip( _("Item exists on right side only") );
+ m_bitmapRightOnly = new wxStaticBitmap( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_bitmapRightOnly->SetToolTip( _("Item exists on right side only") );
- ffgSizer11->Add( m_bitmapRightOnly, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+ ffgSizer11->Add( m_bitmapRightOnly, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
- m_bpButtonLeftOnly = new wxBitmapButton( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- ffgSizer11->Add( m_bpButtonLeftOnly, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+ m_bpButtonLeftOnly = new wxBitmapButton( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ ffgSizer11->Add( m_bpButtonLeftOnly, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
- m_bpButtonLeftNewer = new wxBitmapButton( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- ffgSizer11->Add( m_bpButtonLeftNewer, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+ m_bpButtonLeftNewer = new wxBitmapButton( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ ffgSizer11->Add( m_bpButtonLeftNewer, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
- m_bpButtonDifferent = new wxBitmapButton( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- ffgSizer11->Add( m_bpButtonDifferent, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+ m_bpButtonDifferent = new wxBitmapButton( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ ffgSizer11->Add( m_bpButtonDifferent, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
- m_bpButtonConflict = new wxBitmapButton( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- ffgSizer11->Add( m_bpButtonConflict, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+ m_bpButtonConflict = new wxBitmapButton( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ ffgSizer11->Add( m_bpButtonConflict, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
- m_bpButtonRightNewer = new wxBitmapButton( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- ffgSizer11->Add( m_bpButtonRightNewer, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+ m_bpButtonRightNewer = new wxBitmapButton( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ ffgSizer11->Add( m_bpButtonRightNewer, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
- m_bpButtonRightOnly = new wxBitmapButton( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- ffgSizer11->Add( m_bpButtonRightOnly, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+ m_bpButtonRightOnly = new wxBitmapButton( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ ffgSizer11->Add( m_bpButtonRightOnly, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
- bSizerSyncDirections->Add( ffgSizer11, 0, 0, 5 );
+ bSizerSyncDirections->Add( ffgSizer11, 0, 0, 5 );
- m_staticText120 = new wxStaticText( m_panelSyncSettings, wxID_ANY, _("Action"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText120->Wrap( -1 );
- bSizerSyncDirections->Add( m_staticText120, 0, wxALIGN_CENTER_HORIZONTAL|wxTOP, 5 );
+ m_staticText120 = new wxStaticText( m_panelSyncSettings, wxID_ANY, _("Action"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText120->Wrap( -1 );
+ bSizerSyncDirections->Add( m_staticText120, 0, wxALIGN_CENTER_HORIZONTAL|wxTOP, 5 );
- bSizerSyncDirHolder->Add( bSizerSyncDirections, 0, 0, 5 );
+ bSizerSyncDirHolder->Add( bSizerSyncDirections, 0, 0, 5 );
- bSizerDatabase = new wxBoxSizer( wxVERTICAL );
+ bSizerDatabase = new wxBoxSizer( wxVERTICAL );
- m_bitmapDatabase = new wxStaticBitmap( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), 0 );
- bSizerDatabase->Add( m_bitmapDatabase, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
+ m_bitmapDatabase = new wxStaticBitmap( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizerDatabase->Add( m_bitmapDatabase, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
- bSizerDatabase->Add( 0, 3, 0, 0, 5 );
+ bSizerDatabase->Add( 0, 3, 0, 0, 5 );
- m_staticText145 = new wxStaticText( m_panelSyncSettings, wxID_ANY, _("sync.ffs_db"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText145->Wrap( -1 );
- m_staticText145->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_SWISS, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_NORMAL, false, wxT("Arial") ) );
- m_staticText145->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+ m_staticText145 = new wxStaticText( m_panelSyncSettings, wxID_ANY, _("sync.ffs_db"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText145->Wrap( -1 );
+ m_staticText145->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_SWISS, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_NORMAL, false, wxT("Arial") ) );
+ m_staticText145->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
- bSizerDatabase->Add( m_staticText145, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
+ bSizerDatabase->Add( m_staticText145, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
- bSizerSyncDirHolder->Add( bSizerDatabase, 0, wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
+ bSizerSyncDirHolder->Add( bSizerDatabase, 0, wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
- m_staticTextSyncVarDescription = new wxStaticText( m_panelSyncSettings, wxID_ANY, _("dummy"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
- m_staticTextSyncVarDescription->Wrap( -1 );
- m_staticTextSyncVarDescription->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+ m_staticTextSyncVarDescription = new wxStaticText( m_panelSyncSettings, wxID_ANY, _("dummy"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_staticTextSyncVarDescription->Wrap( -1 );
+ m_staticTextSyncVarDescription->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
- bSizerSyncDirHolder->Add( m_staticTextSyncVarDescription, 0, wxALL|wxALIGN_CENTER_VERTICAL, 10 );
+ bSizerSyncDirHolder->Add( m_staticTextSyncVarDescription, 0, wxALL|wxALIGN_CENTER_VERTICAL, 10 );
- bSizer238->Add( bSizerSyncDirHolder, 0, wxTOP|wxBOTTOM|wxRIGHT, 10 );
+ bSizer238->Add( bSizerSyncDirHolder, 0, wxTOP|wxBOTTOM|wxRIGHT, 10 );
- bSizer238->Add( 0, 0, 1, wxEXPAND, 5 );
+ bSizer238->Add( 0, 0, 1, wxEXPAND, 5 );
- m_staticline431 = new wxStaticLine( m_panelSyncSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer238->Add( m_staticline431, 0, wxEXPAND, 5 );
+ m_staticline431 = new wxStaticLine( m_panelSyncSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer238->Add( m_staticline431, 0, wxEXPAND, 5 );
- wxBoxSizer* bSizer201;
- bSizer201 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer201;
+ bSizer201 = new wxBoxSizer( wxHORIZONTAL );
- m_staticline72 = new wxStaticLine( m_panelSyncSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizer201->Add( m_staticline72, 0, wxEXPAND, 5 );
+ m_staticline72 = new wxStaticLine( m_panelSyncSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizer201->Add( m_staticline72, 0, wxEXPAND, 5 );
- wxBoxSizer* bSizer249;
- bSizer249 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer249;
+ bSizer249 = new wxBoxSizer( wxHORIZONTAL );
- m_checkBoxDetectMove = new wxCheckBox( m_panelSyncSettings, wxID_ANY, _("Detect moved files"), wxDefaultPosition, wxDefaultSize, 0 );
- m_checkBoxDetectMove->SetToolTip( _("- Not supported by all file systems\n- Requires and creates database files\n- Detection not available for first sync") );
+ m_checkBoxDetectMove = new wxCheckBox( m_panelSyncSettings, wxID_ANY, _("Detect moved files"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_checkBoxDetectMove->SetToolTip( _("- Not supported by all file systems\n- Requires and creates database files\n- Detection not available for first sync") );
- bSizer249->Add( m_checkBoxDetectMove, 0, wxALL|wxEXPAND, 5 );
+ bSizer249->Add( m_checkBoxDetectMove, 0, wxALL|wxEXPAND, 5 );
- m_hyperlink242 = new wxHyperlinkCtrl( m_panelSyncSettings, wxID_ANY, _("More information"), wxT("https://freefilesync.org/manual.php?topic=synchronization-settings"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- m_hyperlink242->SetToolTip( _("https://freefilesync.org/manual.php?topic=synchronization-settings") );
+ m_hyperlink242 = new wxHyperlinkCtrl( m_panelSyncSettings, wxID_ANY, _("More information"), wxT("https://freefilesync.org/manual.php?topic=synchronization-settings"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ m_hyperlink242->SetToolTip( _("https://freefilesync.org/manual.php?topic=synchronization-settings") );
- bSizer249->Add( m_hyperlink242, 0, wxTOP|wxBOTTOM|wxRIGHT, 5 );
+ bSizer249->Add( m_hyperlink242, 0, wxTOP|wxBOTTOM|wxRIGHT, 5 );
- bSizer201->Add( bSizer249, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+ bSizer201->Add( bSizer249, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
- bSizer238->Add( bSizer201, 0, 0, 5 );
+ bSizer238->Add( bSizer201, 0, 0, 5 );
- bSizer237->Add( bSizer238, 1, wxEXPAND, 5 );
+ bSizer237->Add( bSizer238, 1, wxEXPAND, 5 );
- bSizer232->Add( bSizer237, 0, wxEXPAND, 5 );
+ bSizer232->Add( bSizer237, 0, wxEXPAND, 5 );
- m_staticline54 = new wxStaticLine( m_panelSyncSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer232->Add( m_staticline54, 0, wxEXPAND, 5 );
+ m_staticline54 = new wxStaticLine( m_panelSyncSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer232->Add( m_staticline54, 0, wxEXPAND, 5 );
- bSizer2361 = new wxBoxSizer( wxHORIZONTAL );
+ bSizer2361 = new wxBoxSizer( wxHORIZONTAL );
- wxBoxSizer* bSizer202;
- bSizer202 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer202;
+ bSizer202 = new wxBoxSizer( wxVERTICAL );
- m_staticText87 = new wxStaticText( m_panelSyncSettings, wxID_ANY, _("Delete files:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText87->Wrap( -1 );
- bSizer202->Add( m_staticText87, 0, wxALL, 5 );
+ m_staticText87 = new wxStaticText( m_panelSyncSettings, wxID_ANY, _("Delete files:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText87->Wrap( -1 );
+ bSizer202->Add( m_staticText87, 0, wxALL, 5 );
- wxBoxSizer* bSizer234;
- bSizer234 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer234;
+ bSizer234 = new wxBoxSizer( wxVERTICAL );
- m_buttonRecycler = new zen::ToggleButton( m_panelSyncSettings, wxID_ANY, _("&Recycle bin"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
+ m_buttonRecycler = new zen::ToggleButton( m_panelSyncSettings, wxID_ANY, _("&Recycle bin"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonRecycler->SetDefault();
- m_buttonRecycler->SetToolTip( _("dummy") );
+ m_buttonRecycler->SetDefault();
+ m_buttonRecycler->SetToolTip( _("dummy") );
- bSizer234->Add( m_buttonRecycler, 0, wxEXPAND, 5 );
+ bSizer234->Add( m_buttonRecycler, 0, wxEXPAND, 5 );
- m_buttonPermanent = new zen::ToggleButton( m_panelSyncSettings, wxID_ANY, _("&Permanent"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
+ m_buttonPermanent = new zen::ToggleButton( m_panelSyncSettings, wxID_ANY, _("&Permanent"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonPermanent->SetDefault();
- m_buttonPermanent->SetToolTip( _("dummy") );
+ m_buttonPermanent->SetDefault();
+ m_buttonPermanent->SetToolTip( _("dummy") );
- bSizer234->Add( m_buttonPermanent, 0, wxEXPAND, 5 );
+ bSizer234->Add( m_buttonPermanent, 0, wxEXPAND, 5 );
- m_buttonVersioning = new zen::ToggleButton( m_panelSyncSettings, wxID_ANY, _("&Versioning"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
+ m_buttonVersioning = new zen::ToggleButton( m_panelSyncSettings, wxID_ANY, _("&Versioning"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonVersioning->SetDefault();
- m_buttonVersioning->SetToolTip( _("dummy") );
+ m_buttonVersioning->SetDefault();
+ m_buttonVersioning->SetToolTip( _("dummy") );
- bSizer234->Add( m_buttonVersioning, 0, wxEXPAND, 5 );
+ bSizer234->Add( m_buttonVersioning, 0, wxEXPAND, 5 );
- bSizer202->Add( bSizer234, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+ bSizer202->Add( bSizer234, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
- bSizer2361->Add( bSizer202, 0, wxALL, 5 );
+ bSizer2361->Add( bSizer202, 0, wxALL, 5 );
- bSizerVersioningHolder = new wxBoxSizer( wxVERTICAL );
+ bSizerVersioningHolder = new wxBoxSizer( wxVERTICAL );
- bSizerVersioningHolder->Add( 0, 0, 1, wxEXPAND, 5 );
+ bSizerVersioningHolder->Add( 0, 0, 1, wxEXPAND, 5 );
- wxBoxSizer* bSizer2331;
- bSizer2331 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer2331;
+ bSizer2331 = new wxBoxSizer( wxHORIZONTAL );
- m_bitmapDeletionType = new wxStaticBitmap( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer2331->Add( m_bitmapDeletionType, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+ m_bitmapDeletionType = new wxStaticBitmap( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer2331->Add( m_bitmapDeletionType, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
- m_staticTextDeletionTypeDescription = new wxStaticText( m_panelSyncSettings, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextDeletionTypeDescription->Wrap( -1 );
- m_staticTextDeletionTypeDescription->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+ m_staticTextDeletionTypeDescription = new wxStaticText( m_panelSyncSettings, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextDeletionTypeDescription->Wrap( -1 );
+ m_staticTextDeletionTypeDescription->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
- bSizer2331->Add( m_staticTextDeletionTypeDescription, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+ bSizer2331->Add( m_staticTextDeletionTypeDescription, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
- bSizerVersioningHolder->Add( bSizer2331, 0, wxALL|wxEXPAND, 5 );
+ bSizerVersioningHolder->Add( bSizer2331, 0, wxALL|wxEXPAND, 5 );
- m_panelVersioning = new wxPanel( m_panelSyncSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panelVersioning->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_panelVersioning = new wxPanel( m_panelSyncSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panelVersioning->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- wxBoxSizer* bSizer191;
- bSizer191 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer191;
+ bSizer191 = new wxBoxSizer( wxVERTICAL );
- bSizer191->Add( 0, 5, 0, 0, 5 );
+ bSizer191->Add( 0, 5, 0, 0, 5 );
- wxBoxSizer* bSizer252;
- bSizer252 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer252;
+ bSizer252 = new wxBoxSizer( wxHORIZONTAL );
- m_bitmapVersioning = new wxStaticBitmap( m_panelVersioning, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer252->Add( m_bitmapVersioning, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+ m_bitmapVersioning = new wxStaticBitmap( m_panelVersioning, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer252->Add( m_bitmapVersioning, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
- wxBoxSizer* bSizer253;
- bSizer253 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer253;
+ bSizer253 = new wxBoxSizer( wxVERTICAL );
- wxBoxSizer* bSizer254;
- bSizer254 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer254;
+ bSizer254 = new wxBoxSizer( wxHORIZONTAL );
- m_staticText155 = new wxStaticText( m_panelVersioning, wxID_ANY, _("Move files to a user-defined folder"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText155->Wrap( -1 );
- m_staticText155->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+ m_staticText155 = new wxStaticText( m_panelVersioning, wxID_ANY, _("Move files to a user-defined folder"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText155->Wrap( -1 );
+ m_staticText155->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
- bSizer254->Add( m_staticText155, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+ bSizer254->Add( m_staticText155, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
- bSizer254->Add( 0, 0, 1, wxEXPAND, 5 );
+ bSizer254->Add( 0, 0, 1, wxEXPAND, 5 );
- m_hyperlink243 = new wxHyperlinkCtrl( m_panelVersioning, wxID_ANY, _("Show examples"), wxT("https://freefilesync.org/manual.php?topic=versioning"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- m_hyperlink243->SetToolTip( _("https://freefilesync.org/manual.php?topic=versioning") );
+ m_hyperlink243 = new wxHyperlinkCtrl( m_panelVersioning, wxID_ANY, _("Show examples"), wxT("https://freefilesync.org/manual.php?topic=versioning"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ m_hyperlink243->SetToolTip( _("https://freefilesync.org/manual.php?topic=versioning") );
- bSizer254->Add( m_hyperlink243, 0, wxLEFT|wxALIGN_BOTTOM, 5 );
+ bSizer254->Add( m_hyperlink243, 0, wxLEFT|wxALIGN_BOTTOM, 5 );
- bSizer253->Add( bSizer254, 0, wxEXPAND|wxBOTTOM, 5 );
+ bSizer253->Add( bSizer254, 0, wxEXPAND|wxBOTTOM, 5 );
- wxBoxSizer* bSizer156;
- bSizer156 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer156;
+ bSizer156 = new wxBoxSizer( wxHORIZONTAL );
- m_versioningFolderPath = new fff::FolderHistoryBox( m_panelVersioning, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
- bSizer156->Add( m_versioningFolderPath, 1, wxALIGN_CENTER_VERTICAL, 5 );
+ m_versioningFolderPath = new fff::FolderHistoryBox( m_panelVersioning, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
+ bSizer156->Add( m_versioningFolderPath, 1, wxALIGN_CENTER_VERTICAL, 5 );
- m_buttonSelectVersioningFolder = new wxButton( m_panelVersioning, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
- m_buttonSelectVersioningFolder->SetToolTip( _("Select a folder") );
+ m_buttonSelectVersioningFolder = new wxButton( m_panelVersioning, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_buttonSelectVersioningFolder->SetToolTip( _("Select a folder") );
- bSizer156->Add( m_buttonSelectVersioningFolder, 0, wxEXPAND, 5 );
+ bSizer156->Add( m_buttonSelectVersioningFolder, 0, wxEXPAND, 5 );
- m_bpButtonSelectVersioningAltFolder = new wxBitmapButton( m_panelVersioning, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- m_bpButtonSelectVersioningAltFolder->SetToolTip( _("Access online storage") );
+ m_bpButtonSelectVersioningAltFolder = new wxBitmapButton( m_panelVersioning, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ m_bpButtonSelectVersioningAltFolder->SetToolTip( _("Access online storage") );
- bSizer156->Add( m_bpButtonSelectVersioningAltFolder, 0, wxEXPAND, 5 );
+ bSizer156->Add( m_bpButtonSelectVersioningAltFolder, 0, wxEXPAND, 5 );
- bSizer253->Add( bSizer156, 0, wxEXPAND, 5 );
+ bSizer253->Add( bSizer156, 0, wxEXPAND, 5 );
- bSizer252->Add( bSizer253, 1, wxRIGHT, 5 );
+ bSizer252->Add( bSizer253, 1, wxRIGHT, 5 );
- bSizer191->Add( bSizer252, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
+ bSizer191->Add( bSizer252, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
- wxBoxSizer* bSizer198;
- bSizer198 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer198;
+ bSizer198 = new wxBoxSizer( wxHORIZONTAL );
- wxBoxSizer* bSizer255;
- bSizer255 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer255;
+ bSizer255 = new wxBoxSizer( wxVERTICAL );
- wxBoxSizer* bSizer256;
- bSizer256 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer256;
+ bSizer256 = new wxBoxSizer( wxHORIZONTAL );
- m_staticText93 = new wxStaticText( m_panelVersioning, wxID_ANY, _("Naming convention:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText93->Wrap( -1 );
- bSizer256->Add( m_staticText93, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+ m_staticText93 = new wxStaticText( m_panelVersioning, wxID_ANY, _("Naming convention:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText93->Wrap( -1 );
+ bSizer256->Add( m_staticText93, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
- wxArrayString m_choiceVersioningStyleChoices;
- m_choiceVersioningStyle = new wxChoice( m_panelVersioning, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceVersioningStyleChoices, 0 );
- m_choiceVersioningStyle->SetSelection( 0 );
- bSizer256->Add( m_choiceVersioningStyle, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ wxArrayString m_choiceVersioningStyleChoices;
+ m_choiceVersioningStyle = new wxChoice( m_panelVersioning, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceVersioningStyleChoices, 0 );
+ m_choiceVersioningStyle->SetSelection( 0 );
+ bSizer256->Add( m_choiceVersioningStyle, 0, wxALIGN_CENTER_VERTICAL, 5 );
- bSizer255->Add( bSizer256, 0, wxALL, 5 );
+ bSizer255->Add( bSizer256, 0, wxALL, 5 );
- wxBoxSizer* bSizer257;
- bSizer257 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer257;
+ bSizer257 = new wxBoxSizer( wxHORIZONTAL );
- m_staticTextNamingCvtPart1 = new wxStaticText( m_panelVersioning, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextNamingCvtPart1->Wrap( -1 );
- m_staticTextNamingCvtPart1->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+ m_staticTextNamingCvtPart1 = new wxStaticText( m_panelVersioning, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextNamingCvtPart1->Wrap( -1 );
+ m_staticTextNamingCvtPart1->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
- bSizer257->Add( m_staticTextNamingCvtPart1, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ bSizer257->Add( m_staticTextNamingCvtPart1, 0, wxALIGN_CENTER_VERTICAL, 5 );
- m_staticTextNamingCvtPart2Bold = new wxStaticText( m_panelVersioning, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextNamingCvtPart2Bold->Wrap( -1 );
- m_staticTextNamingCvtPart2Bold->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
- m_staticTextNamingCvtPart2Bold->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+ m_staticTextNamingCvtPart2Bold = new wxStaticText( m_panelVersioning, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextNamingCvtPart2Bold->Wrap( -1 );
+ m_staticTextNamingCvtPart2Bold->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
+ m_staticTextNamingCvtPart2Bold->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
- bSizer257->Add( m_staticTextNamingCvtPart2Bold, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ bSizer257->Add( m_staticTextNamingCvtPart2Bold, 0, wxALIGN_CENTER_VERTICAL, 5 );
- m_staticTextNamingCvtPart3 = new wxStaticText( m_panelVersioning, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextNamingCvtPart3->Wrap( -1 );
- m_staticTextNamingCvtPart3->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+ m_staticTextNamingCvtPart3 = new wxStaticText( m_panelVersioning, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextNamingCvtPart3->Wrap( -1 );
+ m_staticTextNamingCvtPart3->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
- bSizer257->Add( m_staticTextNamingCvtPart3, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ bSizer257->Add( m_staticTextNamingCvtPart3, 0, wxALIGN_CENTER_VERTICAL, 5 );
- bSizer255->Add( bSizer257, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+ bSizer255->Add( bSizer257, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
- bSizer198->Add( bSizer255, 0, wxALL, 5 );
+ bSizer198->Add( bSizer255, 0, wxALL, 5 );
- m_staticline69 = new wxStaticLine( m_panelVersioning, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizer198->Add( m_staticline69, 0, wxEXPAND, 5 );
+ m_staticline69 = new wxStaticLine( m_panelVersioning, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizer198->Add( m_staticline69, 0, wxEXPAND, 5 );
- wxBoxSizer* bSizer258;
- bSizer258 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer258;
+ bSizer258 = new wxBoxSizer( wxVERTICAL );
- m_staticTextLimitVersions = new wxStaticText( m_panelVersioning, wxID_ANY, _("Limit file versions:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextLimitVersions->Wrap( -1 );
- bSizer258->Add( m_staticTextLimitVersions, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
+ m_staticTextLimitVersions = new wxStaticText( m_panelVersioning, wxID_ANY, _("Limit file versions:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextLimitVersions->Wrap( -1 );
+ bSizer258->Add( m_staticTextLimitVersions, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
- fgSizer15 = new wxFlexGridSizer( 0, 3, 5, 10 );
- fgSizer15->SetFlexibleDirection( wxBOTH );
- fgSizer15->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+ fgSizer15 = new wxFlexGridSizer( 0, 3, 5, 10 );
+ fgSizer15->SetFlexibleDirection( wxBOTH );
+ fgSizer15->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
- m_checkBoxVersionMaxDays = new wxCheckBox( m_panelVersioning, wxID_ANY, _("Last x days:"), wxDefaultPosition, wxDefaultSize, 0 );
- fgSizer15->Add( m_checkBoxVersionMaxDays, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ m_checkBoxVersionMaxDays = new wxCheckBox( m_panelVersioning, wxID_ANY, _("Last x days:"), wxDefaultPosition, wxDefaultSize, 0 );
+ fgSizer15->Add( m_checkBoxVersionMaxDays, 0, wxALIGN_CENTER_VERTICAL, 5 );
- m_checkBoxVersionCountMin = new wxCheckBox( m_panelVersioning, wxID_ANY, _("Minimum:"), wxDefaultPosition, wxDefaultSize, 0 );
- fgSizer15->Add( m_checkBoxVersionCountMin, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ m_checkBoxVersionCountMin = new wxCheckBox( m_panelVersioning, wxID_ANY, _("Minimum:"), wxDefaultPosition, wxDefaultSize, 0 );
+ fgSizer15->Add( m_checkBoxVersionCountMin, 0, wxALIGN_CENTER_VERTICAL, 5 );
- m_checkBoxVersionCountMax = new wxCheckBox( m_panelVersioning, wxID_ANY, _("Maximum:"), wxDefaultPosition, wxDefaultSize, 0 );
- fgSizer15->Add( m_checkBoxVersionCountMax, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ m_checkBoxVersionCountMax = new wxCheckBox( m_panelVersioning, wxID_ANY, _("Maximum:"), wxDefaultPosition, wxDefaultSize, 0 );
+ fgSizer15->Add( m_checkBoxVersionCountMax, 0, wxALIGN_CENTER_VERTICAL, 5 );
- m_spinCtrlVersionMaxDays = new wxSpinCtrl( m_panelVersioning, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1, -1 ), wxSP_ARROW_KEYS, 1, 2000000000, 1 );
- fgSizer15->Add( m_spinCtrlVersionMaxDays, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ m_spinCtrlVersionMaxDays = new wxSpinCtrl( m_panelVersioning, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), wxSP_ARROW_KEYS, 1, 2000000000, 1 );
+ fgSizer15->Add( m_spinCtrlVersionMaxDays, 0, wxALIGN_CENTER_VERTICAL, 5 );
- m_spinCtrlVersionCountMin = new wxSpinCtrl( m_panelVersioning, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1, -1 ), wxSP_ARROW_KEYS, 1, 2000000000, 1 );
- fgSizer15->Add( m_spinCtrlVersionCountMin, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ m_spinCtrlVersionCountMin = new wxSpinCtrl( m_panelVersioning, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), wxSP_ARROW_KEYS, 1, 2000000000, 1 );
+ fgSizer15->Add( m_spinCtrlVersionCountMin, 0, wxALIGN_CENTER_VERTICAL, 5 );
- m_spinCtrlVersionCountMax = new wxSpinCtrl( m_panelVersioning, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 1, 2000000000, 1 );
- fgSizer15->Add( m_spinCtrlVersionCountMax, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ m_spinCtrlVersionCountMax = new wxSpinCtrl( m_panelVersioning, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 1, 2000000000, 1 );
+ fgSizer15->Add( m_spinCtrlVersionCountMax, 0, wxALIGN_CENTER_VERTICAL, 5 );
- bSizer258->Add( fgSizer15, 0, wxALL, 5 );
+ bSizer258->Add( fgSizer15, 0, wxALL, 5 );
- bSizer198->Add( bSizer258, 0, wxALL, 5 );
+ bSizer198->Add( bSizer258, 0, wxALL, 5 );
- bSizer191->Add( bSizer198, 0, wxEXPAND, 5 );
+ bSizer191->Add( bSizer198, 0, wxEXPAND, 5 );
- m_panelVersioning->SetSizer( bSizer191 );
- m_panelVersioning->Layout();
- bSizer191->Fit( m_panelVersioning );
- bSizerVersioningHolder->Add( m_panelVersioning, 0, wxEXPAND, 5 );
+ m_panelVersioning->SetSizer( bSizer191 );
+ m_panelVersioning->Layout();
+ bSizer191->Fit( m_panelVersioning );
+ bSizerVersioningHolder->Add( m_panelVersioning, 0, wxEXPAND, 5 );
- bSizerVersioningHolder->Add( 0, 0, 1, wxEXPAND, 5 );
+ bSizerVersioningHolder->Add( 0, 0, 1, wxEXPAND, 5 );
- bSizer2361->Add( bSizerVersioningHolder, 1, wxALIGN_CENTER_VERTICAL, 5 );
+ bSizer2361->Add( bSizerVersioningHolder, 1, wxALIGN_CENTER_VERTICAL, 5 );
- bSizer232->Add( bSizer2361, 0, wxEXPAND, 5 );
+ bSizer232->Add( bSizer2361, 0, wxEXPAND, 5 );
- m_staticline582 = new wxStaticLine( m_panelSyncSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer232->Add( m_staticline582, 0, wxEXPAND, 5 );
+ m_staticline582 = new wxStaticLine( m_panelSyncSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer232->Add( m_staticline582, 0, wxEXPAND, 5 );
- bSizerSyncMisc = new wxBoxSizer( wxHORIZONTAL );
+ bSizerSyncMisc = new wxBoxSizer( wxHORIZONTAL );
- wxBoxSizer* bSizer292;
- bSizer292 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer292;
+ bSizer292 = new wxBoxSizer( wxVERTICAL );
- wxBoxSizer* bSizer287;
- bSizer287 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer287;
+ bSizer287 = new wxBoxSizer( wxHORIZONTAL );
- wxBoxSizer* bSizer290;
- bSizer290 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer290;
+ bSizer290 = new wxBoxSizer( wxVERTICAL );
- wxBoxSizer* bSizer291;
- bSizer291 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer291;
+ bSizer291 = new wxBoxSizer( wxHORIZONTAL );
- m_bitmapEmail = new wxStaticBitmap( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer291->Add( m_bitmapEmail, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ m_bitmapEmail = new wxStaticBitmap( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer291->Add( m_bitmapEmail, 0, wxALIGN_CENTER_VERTICAL, 5 );
- m_checkBoxSendEmail = new wxCheckBox( m_panelSyncSettings, wxID_ANY, _("Send email notification:"), wxDefaultPosition, wxDefaultSize, 0 );
- bSizer291->Add( m_checkBoxSendEmail, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
+ m_checkBoxSendEmail = new wxCheckBox( m_panelSyncSettings, wxID_ANY, _("Send email notification:"), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer291->Add( m_checkBoxSendEmail, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
- bSizer290->Add( bSizer291, 0, 0, 5 );
+ bSizer290->Add( bSizer291, 0, 0, 5 );
- m_comboBoxEmail = new fff::CommandBox( m_panelSyncSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
- bSizer290->Add( m_comboBoxEmail, 0, wxEXPAND|wxTOP, 5 );
+ m_comboBoxEmail = new fff::CommandBox( m_panelSyncSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
+ bSizer290->Add( m_comboBoxEmail, 0, wxEXPAND|wxTOP, 5 );
- bSizer287->Add( bSizer290, 1, wxRIGHT, 5 );
+ bSizer287->Add( bSizer290, 1, wxRIGHT, 5 );
- wxBoxSizer* bSizer289;
- bSizer289 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer289;
+ bSizer289 = new wxBoxSizer( wxVERTICAL );
- m_bpButtonEmailAlways = new wxBitmapButton( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW|0 );
- bSizer289->Add( m_bpButtonEmailAlways, 0, 0, 5 );
+ m_bpButtonEmailAlways = new wxBitmapButton( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW|0 );
+ bSizer289->Add( m_bpButtonEmailAlways, 0, 0, 5 );
- m_bpButtonEmailErrorWarning = new wxBitmapButton( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW|0 );
- bSizer289->Add( m_bpButtonEmailErrorWarning, 0, 0, 5 );
+ m_bpButtonEmailErrorWarning = new wxBitmapButton( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW|0 );
+ bSizer289->Add( m_bpButtonEmailErrorWarning, 0, 0, 5 );
- m_bpButtonEmailErrorOnly = new wxBitmapButton( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW|0 );
- bSizer289->Add( m_bpButtonEmailErrorOnly, 0, 0, 5 );
+ m_bpButtonEmailErrorOnly = new wxBitmapButton( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW|0 );
+ bSizer289->Add( m_bpButtonEmailErrorOnly, 0, 0, 5 );
- bSizer287->Add( bSizer289, 0, wxLEFT, 5 );
+ bSizer287->Add( bSizer289, 0, wxLEFT, 5 );
- bSizer292->Add( bSizer287, 0, wxEXPAND, 5 );
+ bSizer292->Add( bSizer287, 0, wxEXPAND, 5 );
- m_hyperlinkPerfDeRequired2 = new wxHyperlinkCtrl( m_panelSyncSettings, wxID_ANY, _("Requires FreeFileSync Donation Edition"), wxT("https://freefilesync.org/faq.php#donation-edition"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- m_hyperlinkPerfDeRequired2->SetToolTip( _("https://freefilesync.org/faq.php#donation-edition") );
+ m_hyperlinkPerfDeRequired2 = new wxHyperlinkCtrl( m_panelSyncSettings, wxID_ANY, _("Requires FreeFileSync Donation Edition"), wxT("https://freefilesync.org/faq.php#donation-edition"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ m_hyperlinkPerfDeRequired2->SetToolTip( _("https://freefilesync.org/faq.php#donation-edition") );
- bSizer292->Add( m_hyperlinkPerfDeRequired2, 0, wxALL, 5 );
+ bSizer292->Add( m_hyperlinkPerfDeRequired2, 0, wxALL, 5 );
- bSizerSyncMisc->Add( bSizer292, 0, wxEXPAND|wxALL, 10 );
+ bSizerSyncMisc->Add( bSizer292, 0, wxEXPAND|wxALL, 10 );
- m_staticline57 = new wxStaticLine( m_panelSyncSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizerSyncMisc->Add( m_staticline57, 0, wxEXPAND, 5 );
+ m_staticline57 = new wxStaticLine( m_panelSyncSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizerSyncMisc->Add( m_staticline57, 0, wxEXPAND, 5 );
- wxBoxSizer* bSizer293;
- bSizer293 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer293;
+ bSizer293 = new wxBoxSizer( wxVERTICAL );
- wxBoxSizer* bSizer2372;
- bSizer2372 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer2372;
+ bSizer2372 = new wxBoxSizer( wxHORIZONTAL );
- m_panelLogfile = new wxPanel( m_panelSyncSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panelLogfile->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_panelLogfile = new wxPanel( m_panelSyncSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panelLogfile->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- wxBoxSizer* bSizer1912;
- bSizer1912 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer1912;
+ bSizer1912 = new wxBoxSizer( wxVERTICAL );
- wxBoxSizer* bSizer279;
- bSizer279 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer279;
+ bSizer279 = new wxBoxSizer( wxHORIZONTAL );
- m_bitmapLogFile = new wxStaticBitmap( m_panelLogfile, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer279->Add( m_bitmapLogFile, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ m_bitmapLogFile = new wxStaticBitmap( m_panelLogfile, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer279->Add( m_bitmapLogFile, 0, wxALIGN_CENTER_VERTICAL, 5 );
- m_checkBoxOverrideLogPath = new wxCheckBox( m_panelLogfile, wxID_ANY, _("&Override default log path:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_checkBoxOverrideLogPath->SetValue(true);
- bSizer279->Add( m_checkBoxOverrideLogPath, 1, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
+ m_checkBoxOverrideLogPath = new wxCheckBox( m_panelLogfile, wxID_ANY, _("&Override default log path:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_checkBoxOverrideLogPath->SetValue(true);
+ bSizer279->Add( m_checkBoxOverrideLogPath, 1, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
- m_buttonSelectLogFolder = new wxButton( m_panelLogfile, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
- m_buttonSelectLogFolder->SetToolTip( _("Select a folder") );
+ m_buttonSelectLogFolder = new wxButton( m_panelLogfile, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_buttonSelectLogFolder->SetToolTip( _("Select a folder") );
- bSizer279->Add( m_buttonSelectLogFolder, 0, wxEXPAND, 5 );
+ bSizer279->Add( m_buttonSelectLogFolder, 0, wxEXPAND, 5 );
- m_bpButtonSelectAltLogFolder = new wxBitmapButton( m_panelLogfile, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- m_bpButtonSelectAltLogFolder->SetToolTip( _("Access online storage") );
+ m_bpButtonSelectAltLogFolder = new wxBitmapButton( m_panelLogfile, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ m_bpButtonSelectAltLogFolder->SetToolTip( _("Access online storage") );
- bSizer279->Add( m_bpButtonSelectAltLogFolder, 0, wxEXPAND, 5 );
+ bSizer279->Add( m_bpButtonSelectAltLogFolder, 0, wxEXPAND, 5 );
- bSizer1912->Add( bSizer279, 0, wxEXPAND, 5 );
+ bSizer1912->Add( bSizer279, 0, wxEXPAND, 5 );
- m_logFolderPath = new fff::FolderHistoryBox( m_panelLogfile, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
- bSizer1912->Add( m_logFolderPath, 0, wxEXPAND|wxTOP, 5 );
+ m_logFolderPath = new fff::FolderHistoryBox( m_panelLogfile, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
+ bSizer1912->Add( m_logFolderPath, 0, wxEXPAND|wxTOP, 5 );
- m_panelLogfile->SetSizer( bSizer1912 );
- m_panelLogfile->Layout();
- bSizer1912->Fit( m_panelLogfile );
- bSizer2372->Add( m_panelLogfile, 1, 0, 5 );
+ m_panelLogfile->SetSizer( bSizer1912 );
+ m_panelLogfile->Layout();
+ bSizer1912->Fit( m_panelLogfile );
+ bSizer2372->Add( m_panelLogfile, 1, 0, 5 );
- bSizer293->Add( bSizer2372, 0, wxALL|wxEXPAND, 10 );
+ bSizer293->Add( bSizer2372, 0, wxALL|wxEXPAND, 10 );
- m_staticline80 = new wxStaticLine( m_panelSyncSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer293->Add( m_staticline80, 0, wxEXPAND, 5 );
+ m_staticline80 = new wxStaticLine( m_panelSyncSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer293->Add( m_staticline80, 0, wxEXPAND, 5 );
- wxBoxSizer* bSizer247;
- bSizer247 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer247;
+ bSizer247 = new wxBoxSizer( wxHORIZONTAL );
- m_staticTextPostSync = new wxStaticText( m_panelSyncSettings, wxID_ANY, _("Run a command:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextPostSync->Wrap( -1 );
- bSizer247->Add( m_staticTextPostSync, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 );
+ m_staticTextPostSync = new wxStaticText( m_panelSyncSettings, wxID_ANY, _("Run a command:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextPostSync->Wrap( -1 );
+ bSizer247->Add( m_staticTextPostSync, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 );
- wxArrayString m_choicePostSyncConditionChoices;
- m_choicePostSyncCondition = new wxChoice( m_panelSyncSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choicePostSyncConditionChoices, 0 );
- m_choicePostSyncCondition->SetSelection( 0 );
- bSizer247->Add( m_choicePostSyncCondition, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ wxArrayString m_choicePostSyncConditionChoices;
+ m_choicePostSyncCondition = new wxChoice( m_panelSyncSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choicePostSyncConditionChoices, 0 );
+ m_choicePostSyncCondition->SetSelection( 0 );
+ bSizer247->Add( m_choicePostSyncCondition, 0, wxALIGN_CENTER_VERTICAL, 5 );
- m_comboBoxPostSyncCommand = new fff::CommandBox( m_panelSyncSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
- bSizer247->Add( m_comboBoxPostSyncCommand, 1, wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
+ m_comboBoxPostSyncCommand = new fff::CommandBox( m_panelSyncSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
+ bSizer247->Add( m_comboBoxPostSyncCommand, 1, wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
- bSizer293->Add( bSizer247, 0, wxALL|wxEXPAND, 10 );
+ bSizer293->Add( bSizer247, 0, wxALL|wxEXPAND, 10 );
- bSizerSyncMisc->Add( bSizer293, 1, 0, 5 );
+ bSizerSyncMisc->Add( bSizer293, 1, 0, 5 );
- bSizer232->Add( bSizerSyncMisc, 1, wxEXPAND, 5 );
+ bSizer232->Add( bSizerSyncMisc, 1, wxEXPAND, 5 );
- m_panelSyncSettings->SetSizer( bSizer232 );
- m_panelSyncSettings->Layout();
- bSizer232->Fit( m_panelSyncSettings );
- bSizer276->Add( m_panelSyncSettings, 1, wxEXPAND, 5 );
+ m_panelSyncSettings->SetSizer( bSizer232 );
+ m_panelSyncSettings->Layout();
+ bSizer232->Fit( m_panelSyncSettings );
+ bSizer276->Add( m_panelSyncSettings, 1, wxEXPAND, 5 );
- m_panelSyncSettingsTab->SetSizer( bSizer276 );
- m_panelSyncSettingsTab->Layout();
- bSizer276->Fit( m_panelSyncSettingsTab );
- m_notebook->AddPage( m_panelSyncSettingsTab, _("dummy"), false );
+ m_panelSyncSettingsTab->SetSizer( bSizer276 );
+ m_panelSyncSettingsTab->Layout();
+ bSizer276->Fit( m_panelSyncSettingsTab );
+ m_notebook->AddPage( m_panelSyncSettingsTab, _("dummy"), false );
- bSizer190->Add( m_notebook, 1, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
+ bSizer190->Add( m_notebook, 1, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
- bSizer7->Add( bSizer190, 1, wxEXPAND, 5 );
+ bSizer7->Add( bSizer190, 1, wxEXPAND, 5 );
- bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
+ bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
- m_buttonOkay = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
+ m_buttonOkay = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonOkay->SetDefault();
- m_buttonOkay->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
+ m_buttonOkay->SetDefault();
+ m_buttonOkay->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
- bSizerStdButtons->Add( m_buttonOkay, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+ bSizerStdButtons->Add( m_buttonOkay, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
- m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
- bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+ m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
- bSizer7->Add( bSizerStdButtons, 0, wxALIGN_RIGHT, 5 );
+ bSizer7->Add( bSizerStdButtons, 0, wxALIGN_RIGHT, 5 );
- this->SetSizer( bSizer7 );
- this->Layout();
- bSizer7->Fit( this );
+ this->SetSizer( bSizer7 );
+ this->Layout();
+ bSizer7->Fit( this );
- this->Centre( wxBOTH );
+ this->Centre( wxBOTH );
- // Connect Events
- this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( ConfigDlgGenerated::onClose ) );
- m_listBoxFolderPair->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( ConfigDlgGenerated::onListBoxKeyEvent ), NULL, this );
- m_listBoxFolderPair->Connect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( ConfigDlgGenerated::onSelectFolderPair ), NULL, this );
- m_checkBoxUseLocalCmpOptions->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onToggleLocalCompSettings ), NULL, this );
- m_buttonByTimeSize->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onCompByTimeSize ), NULL, this );
- m_buttonByTimeSize->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( ConfigDlgGenerated::onCompByTimeSizeDouble ), NULL, this );
- m_buttonByContent->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onCompByContent ), NULL, this );
- m_buttonByContent->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( ConfigDlgGenerated::onCompByContentDouble ), NULL, this );
- m_buttonBySize->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onCompBySize ), NULL, this );
- m_buttonBySize->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( ConfigDlgGenerated::onCompBySizeDouble ), NULL, this );
- m_checkBoxSymlinksInclude->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onChangeCompOption ), NULL, this );
- m_checkBoxIgnoreErrors->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onToggleIgnoreErrors ), NULL, this );
- m_checkBoxAutoRetry->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onToggleAutoRetry ), NULL, this );
- m_textCtrlInclude->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( ConfigDlgGenerated::onChangeFilterOption ), NULL, this );
- m_textCtrlExclude->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( ConfigDlgGenerated::onChangeFilterOption ), NULL, this );
- m_choiceUnitMinSize->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( ConfigDlgGenerated::onChangeFilterOption ), NULL, this );
- m_choiceUnitMaxSize->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( ConfigDlgGenerated::onChangeFilterOption ), NULL, this );
- m_choiceUnitTimespan->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( ConfigDlgGenerated::onChangeFilterOption ), NULL, this );
- m_buttonDefault->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onFilterDefault ), NULL, this );
- m_buttonDefault->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( ConfigDlgGenerated::onFilterDefaultContextMouse ), NULL, this );
- m_bpButtonDefaultContext->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onFilterDefaultContext ), NULL, this );
- m_bpButtonDefaultContext->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( ConfigDlgGenerated::onFilterDefaultContextMouse ), NULL, this );
- m_buttonClear->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onFilterClear ), NULL, this );
- m_checkBoxUseLocalSyncOptions->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onToggleLocalSyncSettings ), NULL, this );
- m_buttonTwoWay->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onSyncTwoWay ), NULL, this );
- m_buttonTwoWay->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( ConfigDlgGenerated::onSyncTwoWayDouble ), NULL, this );
- m_buttonMirror->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onSyncMirror ), NULL, this );
- m_buttonMirror->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( ConfigDlgGenerated::onSyncMirrorDouble ), NULL, this );
- m_buttonUpdate->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onSyncUpdate ), NULL, this );
- m_buttonUpdate->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( ConfigDlgGenerated::onSyncUpdateDouble ), NULL, this );
- m_buttonCustom->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onSyncCustom ), NULL, this );
- m_buttonCustom->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( ConfigDlgGenerated::onSyncCustomDouble ), NULL, this );
- m_bpButtonLeftOnly->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onExLeftSideOnly ), NULL, this );
- m_bpButtonLeftNewer->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onLeftNewer ), NULL, this );
- m_bpButtonDifferent->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onDifferent ), NULL, this );
- m_bpButtonConflict->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onConflict ), NULL, this );
- m_bpButtonRightNewer->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onRightNewer ), NULL, this );
- m_bpButtonRightOnly->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onExRightSideOnly ), NULL, this );
- m_checkBoxDetectMove->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onToggleDetectMovedFiles ), NULL, this );
- m_buttonRecycler->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onDeletionRecycler ), NULL, this );
- m_buttonPermanent->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onDeletionPermanent ), NULL, this );
- m_buttonVersioning->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onDeletionVersioning ), NULL, this );
- m_choiceVersioningStyle->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( ConfigDlgGenerated::onChanegVersioningStyle ), NULL, this );
- m_checkBoxVersionMaxDays->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onToggleVersioningLimit ), NULL, this );
- m_checkBoxVersionCountMin->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onToggleVersioningLimit ), NULL, this );
- m_checkBoxVersionCountMax->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onToggleVersioningLimit ), NULL, this );
- m_checkBoxSendEmail->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onToggleMiscEmail ), NULL, this );
- m_bpButtonEmailAlways->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onEmailAlways ), NULL, this );
- m_bpButtonEmailErrorWarning->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onEmailErrorWarning ), NULL, this );
- m_bpButtonEmailErrorOnly->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onEmailErrorOnly ), NULL, this );
- m_checkBoxOverrideLogPath->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onToggleMiscOption ), NULL, this );
- m_buttonOkay->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onOkay ), NULL, this );
- m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onCancel ), NULL, this );
+ // Connect Events
+ this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( ConfigDlgGenerated::onClose ) );
+ m_listBoxFolderPair->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( ConfigDlgGenerated::onListBoxKeyEvent ), NULL, this );
+ m_listBoxFolderPair->Connect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( ConfigDlgGenerated::onSelectFolderPair ), NULL, this );
+ m_checkBoxUseLocalCmpOptions->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onToggleLocalCompSettings ), NULL, this );
+ m_buttonByTimeSize->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onCompByTimeSize ), NULL, this );
+ m_buttonByTimeSize->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( ConfigDlgGenerated::onCompByTimeSizeDouble ), NULL, this );
+ m_buttonByContent->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onCompByContent ), NULL, this );
+ m_buttonByContent->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( ConfigDlgGenerated::onCompByContentDouble ), NULL, this );
+ m_buttonBySize->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onCompBySize ), NULL, this );
+ m_buttonBySize->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( ConfigDlgGenerated::onCompBySizeDouble ), NULL, this );
+ m_checkBoxSymlinksInclude->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onChangeCompOption ), NULL, this );
+ m_checkBoxIgnoreErrors->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onToggleIgnoreErrors ), NULL, this );
+ m_checkBoxAutoRetry->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onToggleAutoRetry ), NULL, this );
+ m_textCtrlInclude->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( ConfigDlgGenerated::onChangeFilterOption ), NULL, this );
+ m_textCtrlExclude->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( ConfigDlgGenerated::onChangeFilterOption ), NULL, this );
+ m_choiceUnitMinSize->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( ConfigDlgGenerated::onChangeFilterOption ), NULL, this );
+ m_choiceUnitMaxSize->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( ConfigDlgGenerated::onChangeFilterOption ), NULL, this );
+ m_choiceUnitTimespan->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( ConfigDlgGenerated::onChangeFilterOption ), NULL, this );
+ m_buttonDefault->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onFilterDefault ), NULL, this );
+ m_buttonDefault->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( ConfigDlgGenerated::onFilterDefaultContextMouse ), NULL, this );
+ m_bpButtonDefaultContext->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onFilterDefaultContext ), NULL, this );
+ m_bpButtonDefaultContext->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( ConfigDlgGenerated::onFilterDefaultContextMouse ), NULL, this );
+ m_buttonClear->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onFilterClear ), NULL, this );
+ m_checkBoxUseLocalSyncOptions->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onToggleLocalSyncSettings ), NULL, this );
+ m_buttonTwoWay->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onSyncTwoWay ), NULL, this );
+ m_buttonTwoWay->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( ConfigDlgGenerated::onSyncTwoWayDouble ), NULL, this );
+ m_buttonMirror->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onSyncMirror ), NULL, this );
+ m_buttonMirror->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( ConfigDlgGenerated::onSyncMirrorDouble ), NULL, this );
+ m_buttonUpdate->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onSyncUpdate ), NULL, this );
+ m_buttonUpdate->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( ConfigDlgGenerated::onSyncUpdateDouble ), NULL, this );
+ m_buttonCustom->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onSyncCustom ), NULL, this );
+ m_buttonCustom->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( ConfigDlgGenerated::onSyncCustomDouble ), NULL, this );
+ m_bpButtonLeftOnly->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onExLeftSideOnly ), NULL, this );
+ m_bpButtonLeftNewer->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onLeftNewer ), NULL, this );
+ m_bpButtonDifferent->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onDifferent ), NULL, this );
+ m_bpButtonConflict->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onConflict ), NULL, this );
+ m_bpButtonRightNewer->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onRightNewer ), NULL, this );
+ m_bpButtonRightOnly->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onExRightSideOnly ), NULL, this );
+ m_checkBoxDetectMove->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onToggleDetectMovedFiles ), NULL, this );
+ m_buttonRecycler->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onDeletionRecycler ), NULL, this );
+ m_buttonPermanent->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onDeletionPermanent ), NULL, this );
+ m_buttonVersioning->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onDeletionVersioning ), NULL, this );
+ m_choiceVersioningStyle->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( ConfigDlgGenerated::onChanegVersioningStyle ), NULL, this );
+ m_checkBoxVersionMaxDays->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onToggleVersioningLimit ), NULL, this );
+ m_checkBoxVersionCountMin->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onToggleVersioningLimit ), NULL, this );
+ m_checkBoxVersionCountMax->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onToggleVersioningLimit ), NULL, this );
+ m_checkBoxSendEmail->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onToggleMiscEmail ), NULL, this );
+ m_bpButtonEmailAlways->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onEmailAlways ), NULL, this );
+ m_bpButtonEmailErrorWarning->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onEmailErrorWarning ), NULL, this );
+ m_bpButtonEmailErrorOnly->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onEmailErrorOnly ), NULL, this );
+ m_checkBoxOverrideLogPath->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onToggleMiscOption ), NULL, this );
+ m_buttonOkay->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onOkay ), NULL, this );
+ m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::onCancel ), NULL, this );
}
ConfigDlgGenerated::~ConfigDlgGenerated()
@@ -2568,515 +2567,515 @@ ConfigDlgGenerated::~ConfigDlgGenerated()
CloudSetupDlgGenerated::CloudSetupDlgGenerated( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
{
- this->SetSizeHints( wxDefaultSize, wxDefaultSize );
- this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+ this->SetSizeHints( wxDefaultSize, wxDefaultSize );
+ this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
- wxBoxSizer* bSizer134;
- bSizer134 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer134;
+ bSizer134 = new wxBoxSizer( wxVERTICAL );
- wxBoxSizer* bSizer72;
- bSizer72 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer72;
+ bSizer72 = new wxBoxSizer( wxHORIZONTAL );
- m_bitmapCloud = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer72->Add( m_bitmapCloud, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 10 );
+ m_bitmapCloud = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer72->Add( m_bitmapCloud, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 10 );
- wxBoxSizer* bSizer272;
- bSizer272 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer272;
+ bSizer272 = new wxBoxSizer( wxVERTICAL );
- m_staticText136 = new wxStaticText( this, wxID_ANY, _("Connection type:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText136->Wrap( -1 );
- bSizer272->Add( m_staticText136, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
+ m_staticText136 = new wxStaticText( this, wxID_ANY, _("Connection type:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText136->Wrap( -1 );
+ bSizer272->Add( m_staticText136, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
- wxBoxSizer* bSizer231;
- bSizer231 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer231;
+ bSizer231 = new wxBoxSizer( wxHORIZONTAL );
- m_toggleBtnGdrive = new wxToggleButton( this, wxID_ANY, _("Google Drive"), wxDefaultPosition, wxDefaultSize, 0 );
- m_toggleBtnGdrive->SetValue( true );
- m_toggleBtnGdrive->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
+ m_toggleBtnGdrive = new wxToggleButton( this, wxID_ANY, _("Google Drive"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_toggleBtnGdrive->SetValue( true );
+ m_toggleBtnGdrive->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
- bSizer231->Add( m_toggleBtnGdrive, 0, wxTOP|wxBOTTOM|wxLEFT|wxEXPAND, 5 );
+ bSizer231->Add( m_toggleBtnGdrive, 0, wxTOP|wxBOTTOM|wxLEFT|wxEXPAND, 5 );
- m_toggleBtnSftp = new wxToggleButton( this, wxID_ANY, _("SFTP"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
- m_toggleBtnSftp->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
+ m_toggleBtnSftp = new wxToggleButton( this, wxID_ANY, _("SFTP"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_toggleBtnSftp->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
- bSizer231->Add( m_toggleBtnSftp, 0, wxTOP|wxBOTTOM|wxLEFT|wxEXPAND, 5 );
+ bSizer231->Add( m_toggleBtnSftp, 0, wxTOP|wxBOTTOM|wxLEFT|wxEXPAND, 5 );
- m_toggleBtnFtp = new wxToggleButton( this, wxID_ANY, _("FTP"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
- m_toggleBtnFtp->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
+ m_toggleBtnFtp = new wxToggleButton( this, wxID_ANY, _("FTP"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_toggleBtnFtp->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
- bSizer231->Add( m_toggleBtnFtp, 0, wxALL|wxEXPAND, 5 );
+ bSizer231->Add( m_toggleBtnFtp, 0, wxALL|wxEXPAND, 5 );
- bSizer272->Add( bSizer231, 0, 0, 5 );
+ bSizer272->Add( bSizer231, 0, 0, 5 );
- bSizer72->Add( bSizer272, 0, wxALL, 5 );
+ bSizer72->Add( bSizer272, 0, wxALL, 5 );
- bSizer134->Add( bSizer72, 0, wxEXPAND, 5 );
+ bSizer134->Add( bSizer72, 0, wxEXPAND, 5 );
- m_staticline371 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxSize( -1, -1 ), wxLI_HORIZONTAL );
- bSizer134->Add( m_staticline371, 0, wxEXPAND, 5 );
+ m_staticline371 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxSize( -1,-1 ), wxLI_HORIZONTAL );
+ bSizer134->Add( m_staticline371, 0, wxEXPAND, 5 );
- m_panel41 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panel41->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_panel41 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panel41->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- wxBoxSizer* bSizer185;
- bSizer185 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer185;
+ bSizer185 = new wxBoxSizer( wxVERTICAL );
- bSizerGdrive = new wxBoxSizer( wxVERTICAL );
+ bSizerGdrive = new wxBoxSizer( wxVERTICAL );
- wxBoxSizer* bSizer284;
- bSizer284 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer284;
+ bSizer284 = new wxBoxSizer( wxHORIZONTAL );
- wxBoxSizer* bSizer307;
- bSizer307 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer307;
+ bSizer307 = new wxBoxSizer( wxVERTICAL );
- wxBoxSizer* bSizer306;
- bSizer306 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer306;
+ bSizer306 = new wxBoxSizer( wxHORIZONTAL );
- m_bitmapGdriveUser = new wxStaticBitmap( m_panel41, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer306->Add( m_bitmapGdriveUser, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+ m_bitmapGdriveUser = new wxStaticBitmap( m_panel41, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer306->Add( m_bitmapGdriveUser, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
- m_staticText166 = new wxStaticText( m_panel41, wxID_ANY, _("Connected user accounts:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText166->Wrap( -1 );
- bSizer306->Add( m_staticText166, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ m_staticText166 = new wxStaticText( m_panel41, wxID_ANY, _("Connected user accounts:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText166->Wrap( -1 );
+ bSizer306->Add( m_staticText166, 0, wxALIGN_CENTER_VERTICAL, 5 );
- bSizer307->Add( bSizer306, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 );
+ bSizer307->Add( bSizer306, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 );
- m_listBoxGdriveUsers = new wxListBox( m_panel41, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, wxLB_NEEDED_SB|wxLB_SINGLE|wxLB_SORT );
- bSizer307->Add( m_listBoxGdriveUsers, 1, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
+ m_listBoxGdriveUsers = new wxListBox( m_panel41, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, wxLB_NEEDED_SB|wxLB_SINGLE|wxLB_SORT );
+ bSizer307->Add( m_listBoxGdriveUsers, 1, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
- wxBoxSizer* bSizer3002;
- bSizer3002 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer3002;
+ bSizer3002 = new wxBoxSizer( wxHORIZONTAL );
- m_buttonGdriveAddUser = new zen::BitmapTextButton( m_panel41, wxID_ANY, _("&Add connection"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
- bSizer3002->Add( m_buttonGdriveAddUser, 1, wxALIGN_CENTER_VERTICAL, 5 );
+ m_buttonGdriveAddUser = new zen::BitmapTextButton( m_panel41, wxID_ANY, _("&Add connection"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizer3002->Add( m_buttonGdriveAddUser, 1, wxALIGN_CENTER_VERTICAL, 5 );
- m_buttonGdriveRemoveUser = new zen::BitmapTextButton( m_panel41, wxID_ANY, _("&Disconnect"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
- bSizer3002->Add( m_buttonGdriveRemoveUser, 1, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
+ m_buttonGdriveRemoveUser = new zen::BitmapTextButton( m_panel41, wxID_ANY, _("&Disconnect"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizer3002->Add( m_buttonGdriveRemoveUser, 1, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
- bSizer307->Add( bSizer3002, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxALIGN_CENTER_HORIZONTAL, 5 );
+ bSizer307->Add( bSizer3002, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxALIGN_CENTER_HORIZONTAL, 5 );
- bSizer284->Add( bSizer307, 0, wxALL|wxEXPAND, 5 );
+ bSizer284->Add( bSizer307, 0, wxALL|wxEXPAND, 5 );
- m_staticline841 = new wxStaticLine( m_panel41, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizer284->Add( m_staticline841, 0, wxEXPAND, 5 );
+ m_staticline841 = new wxStaticLine( m_panel41, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizer284->Add( m_staticline841, 0, wxEXPAND, 5 );
- wxBoxSizer* bSizer3041;
- bSizer3041 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer3041;
+ bSizer3041 = new wxBoxSizer( wxVERTICAL );
- wxBoxSizer* bSizer305;
- bSizer305 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer305;
+ bSizer305 = new wxBoxSizer( wxHORIZONTAL );
- m_bitmapGdriveDrive = new wxStaticBitmap( m_panel41, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer305->Add( m_bitmapGdriveDrive, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 );
+ m_bitmapGdriveDrive = new wxStaticBitmap( m_panel41, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer305->Add( m_bitmapGdriveDrive, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 );
- m_staticText186 = new wxStaticText( m_panel41, wxID_ANY, _("Select drive:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText186->Wrap( -1 );
- bSizer305->Add( m_staticText186, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ m_staticText186 = new wxStaticText( m_panel41, wxID_ANY, _("Select drive:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText186->Wrap( -1 );
+ bSizer305->Add( m_staticText186, 0, wxALIGN_CENTER_VERTICAL, 5 );
- bSizer3041->Add( bSizer305, 0, wxALL, 5 );
+ bSizer3041->Add( bSizer305, 0, wxALL, 5 );
- m_listBoxGdriveDrives = new wxListBox( m_panel41, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, wxLB_NEEDED_SB|wxLB_SINGLE|wxLB_SORT );
- bSizer3041->Add( m_listBoxGdriveDrives, 1, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+ m_listBoxGdriveDrives = new wxListBox( m_panel41, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, wxLB_NEEDED_SB|wxLB_SINGLE|wxLB_SORT );
+ bSizer3041->Add( m_listBoxGdriveDrives, 1, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
- bSizer284->Add( bSizer3041, 1, wxALL|wxEXPAND, 5 );
+ bSizer284->Add( bSizer3041, 1, wxALL|wxEXPAND, 5 );
- bSizerGdrive->Add( bSizer284, 1, wxEXPAND, 5 );
+ bSizerGdrive->Add( bSizer284, 1, wxEXPAND, 5 );
- m_staticline73 = new wxStaticLine( m_panel41, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizerGdrive->Add( m_staticline73, 0, wxEXPAND, 5 );
+ m_staticline73 = new wxStaticLine( m_panel41, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizerGdrive->Add( m_staticline73, 0, wxEXPAND, 5 );
- bSizer185->Add( bSizerGdrive, 1, wxEXPAND, 5 );
+ bSizer185->Add( bSizerGdrive, 1, wxEXPAND, 5 );
- bSizerServer = new wxBoxSizer( wxVERTICAL );
+ bSizerServer = new wxBoxSizer( wxVERTICAL );
- wxBoxSizer* bSizer276;
- bSizer276 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer276;
+ bSizer276 = new wxBoxSizer( wxHORIZONTAL );
- m_bitmapServer = new wxStaticBitmap( m_panel41, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer276->Add( m_bitmapServer, 0, wxTOP|wxBOTTOM|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
+ m_bitmapServer = new wxStaticBitmap( m_panel41, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer276->Add( m_bitmapServer, 0, wxTOP|wxBOTTOM|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
- m_staticText12311 = new wxStaticText( m_panel41, wxID_ANY, _("Server name or IP address:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText12311->Wrap( -1 );
- bSizer276->Add( m_staticText12311, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 );
+ m_staticText12311 = new wxStaticText( m_panel41, wxID_ANY, _("Server name or IP address:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText12311->Wrap( -1 );
+ bSizer276->Add( m_staticText12311, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 );
- m_textCtrlServer = new wxTextCtrl( m_panel41, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1, -1 ), 0 );
- bSizer276->Add( m_textCtrlServer, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+ m_textCtrlServer = new wxTextCtrl( m_panel41, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizer276->Add( m_textCtrlServer, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
- m_staticText1233 = new wxStaticText( m_panel41, wxID_ANY, _("Port:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText1233->Wrap( -1 );
- bSizer276->Add( m_staticText1233, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 );
+ m_staticText1233 = new wxStaticText( m_panel41, wxID_ANY, _("Port:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText1233->Wrap( -1 );
+ bSizer276->Add( m_staticText1233, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 );
- m_textCtrlPort = new wxTextCtrl( m_panel41, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1, -1 ), 0 );
- bSizer276->Add( m_textCtrlPort, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+ m_textCtrlPort = new wxTextCtrl( m_panel41, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizer276->Add( m_textCtrlPort, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
- bSizerServer->Add( bSizer276, 0, wxALL|wxEXPAND, 5 );
+ bSizerServer->Add( bSizer276, 0, wxALL|wxEXPAND, 5 );
- m_staticline58 = new wxStaticLine( m_panel41, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizerServer->Add( m_staticline58, 0, wxEXPAND, 5 );
+ m_staticline58 = new wxStaticLine( m_panel41, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizerServer->Add( m_staticline58, 0, wxEXPAND, 5 );
- bSizer185->Add( bSizerServer, 0, wxEXPAND, 5 );
+ bSizer185->Add( bSizerServer, 0, wxEXPAND, 5 );
- bSizerAuth = new wxBoxSizer( wxVERTICAL );
+ bSizerAuth = new wxBoxSizer( wxVERTICAL );
- bSizerAuthInner = new wxBoxSizer( wxHORIZONTAL );
+ bSizerAuthInner = new wxBoxSizer( wxHORIZONTAL );
- bSizerFtpEncrypt = new wxBoxSizer( wxHORIZONTAL );
+ bSizerFtpEncrypt = new wxBoxSizer( wxHORIZONTAL );
- wxBoxSizer* bSizer2181;
- bSizer2181 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer2181;
+ bSizer2181 = new wxBoxSizer( wxVERTICAL );
- m_staticText1251 = new wxStaticText( m_panel41, wxID_ANY, _("Encryption:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText1251->Wrap( -1 );
- bSizer2181->Add( m_staticText1251, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
+ m_staticText1251 = new wxStaticText( m_panel41, wxID_ANY, _("Encryption:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText1251->Wrap( -1 );
+ bSizer2181->Add( m_staticText1251, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
- m_radioBtnEncryptNone = new wxRadioButton( m_panel41, wxID_ANY, _("&Disabled"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
- m_radioBtnEncryptNone->SetValue( true );
- bSizer2181->Add( m_radioBtnEncryptNone, 0, wxEXPAND|wxALL, 5 );
+ m_radioBtnEncryptNone = new wxRadioButton( m_panel41, wxID_ANY, _("&Disabled"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
+ m_radioBtnEncryptNone->SetValue( true );
+ bSizer2181->Add( m_radioBtnEncryptNone, 0, wxEXPAND|wxALL, 5 );
- m_radioBtnEncryptSsl = new wxRadioButton( m_panel41, wxID_ANY, _("&Explicit SSL/TLS"), wxDefaultPosition, wxDefaultSize, 0 );
- bSizer2181->Add( m_radioBtnEncryptSsl, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
+ m_radioBtnEncryptSsl = new wxRadioButton( m_panel41, wxID_ANY, _("&Explicit SSL/TLS"), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer2181->Add( m_radioBtnEncryptSsl, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
- bSizerFtpEncrypt->Add( bSizer2181, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+ bSizerFtpEncrypt->Add( bSizer2181, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
- m_staticline5721 = new wxStaticLine( m_panel41, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizerFtpEncrypt->Add( m_staticline5721, 0, wxEXPAND, 5 );
+ m_staticline5721 = new wxStaticLine( m_panel41, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizerFtpEncrypt->Add( m_staticline5721, 0, wxEXPAND, 5 );
- bSizerAuthInner->Add( bSizerFtpEncrypt, 0, wxEXPAND, 5 );
+ bSizerAuthInner->Add( bSizerFtpEncrypt, 0, wxEXPAND, 5 );
- bSizerSftpAuth = new wxBoxSizer( wxHORIZONTAL );
+ bSizerSftpAuth = new wxBoxSizer( wxHORIZONTAL );
- wxBoxSizer* bSizer218;
- bSizer218 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer218;
+ bSizer218 = new wxBoxSizer( wxVERTICAL );
- m_staticText125 = new wxStaticText( m_panel41, wxID_ANY, _("Authentication:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText125->Wrap( -1 );
- bSizer218->Add( m_staticText125, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
+ m_staticText125 = new wxStaticText( m_panel41, wxID_ANY, _("Authentication:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText125->Wrap( -1 );
+ bSizer218->Add( m_staticText125, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
- m_radioBtnPassword = new wxRadioButton( m_panel41, wxID_ANY, _("&Password"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
- m_radioBtnPassword->SetValue( true );
- bSizer218->Add( m_radioBtnPassword, 0, wxEXPAND|wxALL, 5 );
+ m_radioBtnPassword = new wxRadioButton( m_panel41, wxID_ANY, _("&Password"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
+ m_radioBtnPassword->SetValue( true );
+ bSizer218->Add( m_radioBtnPassword, 0, wxEXPAND|wxALL, 5 );
- m_radioBtnKeyfile = new wxRadioButton( m_panel41, wxID_ANY, _("&Key file"), wxDefaultPosition, wxDefaultSize, 0 );
- bSizer218->Add( m_radioBtnKeyfile, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
+ m_radioBtnKeyfile = new wxRadioButton( m_panel41, wxID_ANY, _("&Key file"), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer218->Add( m_radioBtnKeyfile, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
- m_radioBtnAgent = new wxRadioButton( m_panel41, wxID_ANY, _("&SSH agent"), wxDefaultPosition, wxDefaultSize, 0 );
- bSizer218->Add( m_radioBtnAgent, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+ m_radioBtnAgent = new wxRadioButton( m_panel41, wxID_ANY, _("&SSH agent"), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer218->Add( m_radioBtnAgent, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
- bSizerSftpAuth->Add( bSizer218, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+ bSizerSftpAuth->Add( bSizer218, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
- m_staticline572 = new wxStaticLine( m_panel41, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizerSftpAuth->Add( m_staticline572, 0, wxEXPAND, 5 );
+ m_staticline572 = new wxStaticLine( m_panel41, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizerSftpAuth->Add( m_staticline572, 0, wxEXPAND, 5 );
- bSizerAuthInner->Add( bSizerSftpAuth, 0, wxEXPAND, 5 );
+ bSizerAuthInner->Add( bSizerSftpAuth, 0, wxEXPAND, 5 );
- m_panelAuth = new wxPanel( m_panel41, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panelAuth->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_panelAuth = new wxPanel( m_panel41, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panelAuth->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- wxBoxSizer* bSizer221;
- bSizer221 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer221;
+ bSizer221 = new wxBoxSizer( wxVERTICAL );
- wxFlexGridSizer* fgSizer161;
- fgSizer161 = new wxFlexGridSizer( 0, 2, 0, 0 );
- fgSizer161->AddGrowableCol( 1 );
- fgSizer161->SetFlexibleDirection( wxBOTH );
- fgSizer161->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+ wxFlexGridSizer* fgSizer161;
+ fgSizer161 = new wxFlexGridSizer( 0, 2, 0, 0 );
+ fgSizer161->AddGrowableCol( 1 );
+ fgSizer161->SetFlexibleDirection( wxBOTH );
+ fgSizer161->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
- m_staticText123 = new wxStaticText( m_panelAuth, wxID_ANY, _("User name:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText123->Wrap( -1 );
- fgSizer161->Add( m_staticText123, 0, wxALIGN_RIGHT|wxTOP|wxBOTTOM|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
+ m_staticText123 = new wxStaticText( m_panelAuth, wxID_ANY, _("User name:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText123->Wrap( -1 );
+ fgSizer161->Add( m_staticText123, 0, wxALIGN_RIGHT|wxTOP|wxBOTTOM|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
- m_textCtrlUserName = new wxTextCtrl( m_panelAuth, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
- fgSizer161->Add( m_textCtrlUserName, 0, wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
+ m_textCtrlUserName = new wxTextCtrl( m_panelAuth, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
+ fgSizer161->Add( m_textCtrlUserName, 0, wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
- m_staticTextKeyfile = new wxStaticText( m_panelAuth, wxID_ANY, _("Private key file:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextKeyfile->Wrap( -1 );
- fgSizer161->Add( m_staticTextKeyfile, 0, wxTOP|wxBOTTOM|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
+ m_staticTextKeyfile = new wxStaticText( m_panelAuth, wxID_ANY, _("Private key file:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextKeyfile->Wrap( -1 );
+ fgSizer161->Add( m_staticTextKeyfile, 0, wxTOP|wxBOTTOM|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
- bSizerKeyFile = new wxBoxSizer( wxHORIZONTAL );
+ bSizerKeyFile = new wxBoxSizer( wxHORIZONTAL );
- m_textCtrlKeyfilePath = new wxTextCtrl( m_panelAuth, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
- bSizerKeyFile->Add( m_textCtrlKeyfilePath, 1, wxALIGN_CENTER_VERTICAL, 5 );
+ m_textCtrlKeyfilePath = new wxTextCtrl( m_panelAuth, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizerKeyFile->Add( m_textCtrlKeyfilePath, 1, wxALIGN_CENTER_VERTICAL, 5 );
- m_buttonSelectKeyfile = new wxButton( m_panelAuth, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
- m_buttonSelectKeyfile->SetToolTip( _("Select a folder") );
+ m_buttonSelectKeyfile = new wxButton( m_panelAuth, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_buttonSelectKeyfile->SetToolTip( _("Select a folder") );
- bSizerKeyFile->Add( m_buttonSelectKeyfile, 0, wxEXPAND, 5 );
+ bSizerKeyFile->Add( m_buttonSelectKeyfile, 0, wxEXPAND, 5 );
- fgSizer161->Add( bSizerKeyFile, 0, wxALL|wxEXPAND, 5 );
+ fgSizer161->Add( bSizerKeyFile, 0, wxALL|wxEXPAND, 5 );
- m_staticTextPassword = new wxStaticText( m_panelAuth, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextPassword->Wrap( -1 );
- fgSizer161->Add( m_staticTextPassword, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 );
+ m_staticTextPassword = new wxStaticText( m_panelAuth, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextPassword->Wrap( -1 );
+ fgSizer161->Add( m_staticTextPassword, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 );
- bSizerPassword = new wxBoxSizer( wxHORIZONTAL );
+ bSizerPassword = new wxBoxSizer( wxHORIZONTAL );
- m_textCtrlPasswordVisible = new wxTextCtrl( m_panelAuth, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
- bSizerPassword->Add( m_textCtrlPasswordVisible, 1, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 );
+ m_textCtrlPasswordVisible = new wxTextCtrl( m_panelAuth, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizerPassword->Add( m_textCtrlPasswordVisible, 1, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 );
- m_textCtrlPasswordHidden = new wxTextCtrl( m_panelAuth, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PASSWORD );
- bSizerPassword->Add( m_textCtrlPasswordHidden, 1, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 );
+ m_textCtrlPasswordHidden = new wxTextCtrl( m_panelAuth, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PASSWORD );
+ bSizerPassword->Add( m_textCtrlPasswordHidden, 1, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 );
- m_checkBoxShowPassword = new wxCheckBox( m_panelAuth, wxID_ANY, _("&Show password"), wxDefaultPosition, wxDefaultSize, 0 );
- bSizerPassword->Add( m_checkBoxShowPassword, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+ m_checkBoxShowPassword = new wxCheckBox( m_panelAuth, wxID_ANY, _("&Show password"), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizerPassword->Add( m_checkBoxShowPassword, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
- fgSizer161->Add( bSizerPassword, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+ fgSizer161->Add( bSizerPassword, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
- bSizer221->Add( fgSizer161, 0, wxALL|wxEXPAND, 5 );
+ bSizer221->Add( fgSizer161, 0, wxALL|wxEXPAND, 5 );
- m_panelAuth->SetSizer( bSizer221 );
- m_panelAuth->Layout();
- bSizer221->Fit( m_panelAuth );
- bSizerAuthInner->Add( m_panelAuth, 1, wxALIGN_CENTER_VERTICAL, 5 );
+ m_panelAuth->SetSizer( bSizer221 );
+ m_panelAuth->Layout();
+ bSizer221->Fit( m_panelAuth );
+ bSizerAuthInner->Add( m_panelAuth, 1, wxALIGN_CENTER_VERTICAL, 5 );
- bSizerAuth->Add( bSizerAuthInner, 0, wxEXPAND, 5 );
+ bSizerAuth->Add( bSizerAuthInner, 0, wxEXPAND, 5 );
- m_staticline581 = new wxStaticLine( m_panel41, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizerAuth->Add( m_staticline581, 0, wxEXPAND, 5 );
+ m_staticline581 = new wxStaticLine( m_panel41, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizerAuth->Add( m_staticline581, 0, wxEXPAND, 5 );
- bSizer185->Add( bSizerAuth, 0, wxEXPAND, 5 );
+ bSizer185->Add( bSizerAuth, 0, wxEXPAND, 5 );
- wxBoxSizer* bSizer269;
- bSizer269 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer269;
+ bSizer269 = new wxBoxSizer( wxVERTICAL );
- wxBoxSizer* bSizer270;
- bSizer270 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer270;
+ bSizer270 = new wxBoxSizer( wxHORIZONTAL );
- m_bitmapServerDir = new wxStaticBitmap( m_panel41, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer270->Add( m_bitmapServerDir, 0, wxTOP|wxBOTTOM|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
+ m_bitmapServerDir = new wxStaticBitmap( m_panel41, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer270->Add( m_bitmapServerDir, 0, wxTOP|wxBOTTOM|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
- m_staticText1232 = new wxStaticText( m_panel41, wxID_ANY, _("Directory on server:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText1232->Wrap( -1 );
- bSizer270->Add( m_staticText1232, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+ m_staticText1232 = new wxStaticText( m_panel41, wxID_ANY, _("Directory on server:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText1232->Wrap( -1 );
+ bSizer270->Add( m_staticText1232, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
- bSizer269->Add( bSizer270, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
+ bSizer269->Add( bSizer270, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
- wxBoxSizer* bSizer217;
- bSizer217 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer217;
+ bSizer217 = new wxBoxSizer( wxHORIZONTAL );
- m_textCtrlServerPath = new wxTextCtrl( m_panel41, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer217->Add( m_textCtrlServerPath, 1, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
+ m_textCtrlServerPath = new wxTextCtrl( m_panel41, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer217->Add( m_textCtrlServerPath, 1, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
- m_buttonSelectFolder = new wxButton( m_panel41, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
- m_buttonSelectFolder->SetToolTip( _("Select a folder") );
+ m_buttonSelectFolder = new wxButton( m_panel41, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_buttonSelectFolder->SetToolTip( _("Select a folder") );
- bSizer217->Add( m_buttonSelectFolder, 0, wxRIGHT|wxEXPAND, 5 );
+ bSizer217->Add( m_buttonSelectFolder, 0, wxRIGHT|wxEXPAND, 5 );
- bSizer269->Add( bSizer217, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
+ bSizer269->Add( bSizer217, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
- wxBoxSizer* bSizer298;
- bSizer298 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer298;
+ bSizer298 = new wxBoxSizer( wxHORIZONTAL );
- bSizer298->Add( 0, 10, 0, 0, 5 );
+ bSizer298->Add( 0, 10, 0, 0, 5 );
- bSizerAccessTimeout = new wxBoxSizer( wxHORIZONTAL );
+ bSizerAccessTimeout = new wxBoxSizer( wxHORIZONTAL );
- m_staticTextTimeout = new wxStaticText( m_panel41, wxID_ANY, _("Access timeout (in seconds):"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextTimeout->Wrap( -1 );
- bSizerAccessTimeout->Add( m_staticTextTimeout, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 );
+ m_staticTextTimeout = new wxStaticText( m_panel41, wxID_ANY, _("Access timeout (in seconds):"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextTimeout->Wrap( -1 );
+ bSizerAccessTimeout->Add( m_staticTextTimeout, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 );
- m_spinCtrlTimeout = new wxSpinCtrl( m_panel41, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1, -1 ), wxSP_ARROW_KEYS, 1, 2000000000, 1 );
- bSizerAccessTimeout->Add( m_spinCtrlTimeout, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+ m_spinCtrlTimeout = new wxSpinCtrl( m_panel41, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), wxSP_ARROW_KEYS, 1, 2000000000, 1 );
+ bSizerAccessTimeout->Add( m_spinCtrlTimeout, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
- bSizer298->Add( bSizerAccessTimeout, 0, wxALL, 5 );
+ bSizer298->Add( bSizerAccessTimeout, 0, wxALL, 5 );
- bSizer269->Add( bSizer298, 0, 0, 5 );
+ bSizer269->Add( bSizer298, 0, 0, 5 );
- bSizer185->Add( bSizer269, 0, wxEXPAND, 5 );
+ bSizer185->Add( bSizer269, 0, wxEXPAND, 5 );
- m_panel41->SetSizer( bSizer185 );
- m_panel41->Layout();
- bSizer185->Fit( m_panel41 );
- bSizer134->Add( m_panel41, 1, wxEXPAND, 5 );
+ m_panel41->SetSizer( bSizer185 );
+ m_panel41->Layout();
+ bSizer185->Fit( m_panel41 );
+ bSizer134->Add( m_panel41, 1, wxEXPAND, 5 );
- m_staticline571 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer134->Add( m_staticline571, 0, wxEXPAND, 5 );
+ m_staticline571 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer134->Add( m_staticline571, 0, wxEXPAND, 5 );
- wxBoxSizer* bSizer219;
- bSizer219 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer219;
+ bSizer219 = new wxBoxSizer( wxHORIZONTAL );
- bSizer219->Add( 5, 0, 0, 0, 5 );
+ bSizer219->Add( 5, 0, 0, 0, 5 );
- m_bitmapPerf = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer219->Add( m_bitmapPerf, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+ m_bitmapPerf = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer219->Add( m_bitmapPerf, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
- m_staticText1361 = new wxStaticText( this, wxID_ANY, _("Performance improvements:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText1361->Wrap( -1 );
- bSizer219->Add( m_staticText1361, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 10 );
+ m_staticText1361 = new wxStaticText( this, wxID_ANY, _("Performance improvements:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText1361->Wrap( -1 );
+ bSizer219->Add( m_staticText1361, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 10 );
- bSizer219->Add( 0, 0, 1, wxEXPAND, 5 );
+ bSizer219->Add( 0, 0, 1, wxEXPAND, 5 );
- m_hyperlink171 = new wxHyperlinkCtrl( this, wxID_ANY, _("How to get best performance?"), wxT("https://freefilesync.org/manual.php?topic=ftp-setup"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- m_hyperlink171->SetToolTip( _("https://freefilesync.org/manual.php?topic=ftp-setup") );
+ m_hyperlink171 = new wxHyperlinkCtrl( this, wxID_ANY, _("How to get best performance?"), wxT("https://freefilesync.org/manual.php?topic=ftp-setup"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ m_hyperlink171->SetToolTip( _("https://freefilesync.org/manual.php?topic=ftp-setup") );
- bSizer219->Add( m_hyperlink171, 0, wxALL|wxALIGN_CENTER_VERTICAL, 10 );
+ bSizer219->Add( m_hyperlink171, 0, wxALL|wxALIGN_CENTER_VERTICAL, 10 );
- bSizer134->Add( bSizer219, 0, wxEXPAND, 5 );
+ bSizer134->Add( bSizer219, 0, wxEXPAND, 5 );
- m_staticline57 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer134->Add( m_staticline57, 0, wxEXPAND, 5 );
+ m_staticline57 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer134->Add( m_staticline57, 0, wxEXPAND, 5 );
- m_panel411 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panel411->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_panel411 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panel411->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- wxBoxSizer* bSizer1851;
- bSizer1851 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer1851;
+ bSizer1851 = new wxBoxSizer( wxVERTICAL );
- wxFlexGridSizer* fgSizer1611;
- fgSizer1611 = new wxFlexGridSizer( 0, 2, 0, 0 );
- fgSizer1611->AddGrowableCol( 1 );
- fgSizer1611->SetFlexibleDirection( wxBOTH );
- fgSizer1611->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+ wxFlexGridSizer* fgSizer1611;
+ fgSizer1611 = new wxFlexGridSizer( 0, 2, 0, 0 );
+ fgSizer1611->AddGrowableCol( 1 );
+ fgSizer1611->SetFlexibleDirection( wxBOTH );
+ fgSizer1611->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
- bSizerConnectionsLabel = new wxBoxSizer( wxVERTICAL );
+ bSizerConnectionsLabel = new wxBoxSizer( wxVERTICAL );
- m_staticTextConnectionsLabel = new wxStaticText( m_panel411, wxID_ANY, _("Parallel file operations:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextConnectionsLabel->Wrap( -1 );
- bSizerConnectionsLabel->Add( m_staticTextConnectionsLabel, 0, 0, 5 );
+ m_staticTextConnectionsLabel = new wxStaticText( m_panel411, wxID_ANY, _("Parallel file operations:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextConnectionsLabel->Wrap( -1 );
+ bSizerConnectionsLabel->Add( m_staticTextConnectionsLabel, 0, 0, 5 );
- m_staticTextConnectionsLabelSub = new wxStaticText( m_panel411, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextConnectionsLabelSub->Wrap( -1 );
- bSizerConnectionsLabel->Add( m_staticTextConnectionsLabelSub, 0, wxALIGN_RIGHT, 5 );
+ m_staticTextConnectionsLabelSub = new wxStaticText( m_panel411, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextConnectionsLabelSub->Wrap( -1 );
+ bSizerConnectionsLabel->Add( m_staticTextConnectionsLabelSub, 0, wxALIGN_RIGHT, 5 );
- fgSizer1611->Add( bSizerConnectionsLabel, 0, wxTOP|wxBOTTOM|wxLEFT|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5 );
+ fgSizer1611->Add( bSizerConnectionsLabel, 0, wxTOP|wxBOTTOM|wxLEFT|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5 );
- wxBoxSizer* bSizer300;
- bSizer300 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer300;
+ bSizer300 = new wxBoxSizer( wxHORIZONTAL );
- m_spinCtrlConnectionCount = new wxSpinCtrl( m_panel411, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1, -1 ), wxSP_ARROW_KEYS, 1, 2000000000, 1 );
- bSizer300->Add( m_spinCtrlConnectionCount, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+ m_spinCtrlConnectionCount = new wxSpinCtrl( m_panel411, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), wxSP_ARROW_KEYS, 1, 2000000000, 1 );
+ bSizer300->Add( m_spinCtrlConnectionCount, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
- m_staticTextConnectionCountDescr = new wxStaticText( m_panel411, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextConnectionCountDescr->Wrap( -1 );
- m_staticTextConnectionCountDescr->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+ m_staticTextConnectionCountDescr = new wxStaticText( m_panel411, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextConnectionCountDescr->Wrap( -1 );
+ m_staticTextConnectionCountDescr->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
- bSizer300->Add( m_staticTextConnectionCountDescr, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+ bSizer300->Add( m_staticTextConnectionCountDescr, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
- m_hyperlinkDeRequired = new wxHyperlinkCtrl( m_panel411, wxID_ANY, _("Requires FreeFileSync Donation Edition"), wxT("https://freefilesync.org/faq.php#donation-edition"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- m_hyperlinkDeRequired->SetToolTip( _("https://freefilesync.org/faq.php#donation-edition") );
+ m_hyperlinkDeRequired = new wxHyperlinkCtrl( m_panel411, wxID_ANY, _("Requires FreeFileSync Donation Edition"), wxT("https://freefilesync.org/faq.php#donation-edition"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ m_hyperlinkDeRequired->SetToolTip( _("https://freefilesync.org/faq.php#donation-edition") );
- bSizer300->Add( m_hyperlinkDeRequired, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+ bSizer300->Add( m_hyperlinkDeRequired, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
- fgSizer1611->Add( bSizer300, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ fgSizer1611->Add( bSizer300, 0, wxALIGN_CENTER_VERTICAL, 5 );
- m_staticTextChannelCountSftp = new wxStaticText( m_panel411, wxID_ANY, _("SFTP channels per connection:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextChannelCountSftp->Wrap( -1 );
- fgSizer1611->Add( m_staticTextChannelCountSftp, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxTOP|wxBOTTOM|wxLEFT, 5 );
+ m_staticTextChannelCountSftp = new wxStaticText( m_panel411, wxID_ANY, _("SFTP channels per connection:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextChannelCountSftp->Wrap( -1 );
+ fgSizer1611->Add( m_staticTextChannelCountSftp, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxTOP|wxBOTTOM|wxLEFT, 5 );
- wxBoxSizer* bSizer3001;
- bSizer3001 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer3001;
+ bSizer3001 = new wxBoxSizer( wxHORIZONTAL );
- m_spinCtrlChannelCountSftp = new wxSpinCtrl( m_panel411, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1, -1 ), wxSP_ARROW_KEYS, 1, 2000000000, 1 );
- bSizer3001->Add( m_spinCtrlChannelCountSftp, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+ m_spinCtrlChannelCountSftp = new wxSpinCtrl( m_panel411, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), wxSP_ARROW_KEYS, 1, 2000000000, 1 );
+ bSizer3001->Add( m_spinCtrlChannelCountSftp, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
- m_buttonChannelCountSftp = new wxButton( m_panel411, wxID_ANY, _("Detect server limit"), wxDefaultPosition, wxDefaultSize, 0 );
- bSizer3001->Add( m_buttonChannelCountSftp, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+ m_buttonChannelCountSftp = new wxButton( m_panel411, wxID_ANY, _("Detect server limit"), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer3001->Add( m_buttonChannelCountSftp, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
- fgSizer1611->Add( bSizer3001, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ fgSizer1611->Add( bSizer3001, 0, wxALIGN_CENTER_VERTICAL, 5 );
- fgSizer1611->Add( 0, 0, 0, 0, 5 );
+ fgSizer1611->Add( 0, 0, 0, 0, 5 );
- wxBoxSizer* bSizer304;
- bSizer304 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer304;
+ bSizer304 = new wxBoxSizer( wxHORIZONTAL );
- m_checkBoxAllowZlib = new wxCheckBox( m_panel411, wxID_ANY, _("Enable &compression"), wxDefaultPosition, wxDefaultSize, 0 );
- bSizer304->Add( m_checkBoxAllowZlib, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+ m_checkBoxAllowZlib = new wxCheckBox( m_panel411, wxID_ANY, _("Enable &compression"), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer304->Add( m_checkBoxAllowZlib, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
- m_staticTextZlibDescr = new wxStaticText( m_panel411, wxID_ANY, _("(zlib)"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextZlibDescr->Wrap( -1 );
- m_staticTextZlibDescr->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+ m_staticTextZlibDescr = new wxStaticText( m_panel411, wxID_ANY, _("(zlib)"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextZlibDescr->Wrap( -1 );
+ m_staticTextZlibDescr->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
- bSizer304->Add( m_staticTextZlibDescr, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+ bSizer304->Add( m_staticTextZlibDescr, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
- fgSizer1611->Add( bSizer304, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ fgSizer1611->Add( bSizer304, 0, wxALIGN_CENTER_VERTICAL, 5 );
- bSizer1851->Add( fgSizer1611, 0, wxALL, 5 );
+ bSizer1851->Add( fgSizer1611, 0, wxALL, 5 );
- m_panel411->SetSizer( bSizer1851 );
- m_panel411->Layout();
- bSizer1851->Fit( m_panel411 );
- bSizer134->Add( m_panel411, 0, wxEXPAND, 5 );
+ m_panel411->SetSizer( bSizer1851 );
+ m_panel411->Layout();
+ bSizer1851->Fit( m_panel411 );
+ bSizer134->Add( m_panel411, 0, wxEXPAND, 5 );
- m_staticline12 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer134->Add( m_staticline12, 0, wxEXPAND, 5 );
+ m_staticline12 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer134->Add( m_staticline12, 0, wxEXPAND, 5 );
- bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
+ bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
- m_buttonOkay = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
+ m_buttonOkay = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonOkay->SetDefault();
- m_buttonOkay->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
+ m_buttonOkay->SetDefault();
+ m_buttonOkay->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
- bSizerStdButtons->Add( m_buttonOkay, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+ bSizerStdButtons->Add( m_buttonOkay, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
- m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
- bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+ m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
- bSizer134->Add( bSizerStdButtons, 0, wxALIGN_RIGHT, 5 );
+ bSizer134->Add( bSizerStdButtons, 0, wxALIGN_RIGHT, 5 );
- this->SetSizer( bSizer134 );
- this->Layout();
- bSizer134->Fit( this );
+ this->SetSizer( bSizer134 );
+ this->Layout();
+ bSizer134->Fit( this );
- this->Centre( wxBOTH );
+ this->Centre( wxBOTH );
- // Connect Events
- this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( CloudSetupDlgGenerated::onClose ) );
- m_toggleBtnGdrive->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( CloudSetupDlgGenerated::onConnectionGdrive ), NULL, this );
- m_toggleBtnSftp->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( CloudSetupDlgGenerated::onConnectionSftp ), NULL, this );
- m_toggleBtnFtp->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( CloudSetupDlgGenerated::onConnectionFtp ), NULL, this );
- m_listBoxGdriveUsers->Connect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( CloudSetupDlgGenerated::onGdriveUserSelect ), NULL, this );
- m_buttonGdriveAddUser->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CloudSetupDlgGenerated::onGdriveUserAdd ), NULL, this );
- m_buttonGdriveRemoveUser->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CloudSetupDlgGenerated::onGdriveUserRemove ), NULL, this );
- m_radioBtnPassword->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( CloudSetupDlgGenerated::onAuthPassword ), NULL, this );
- m_radioBtnKeyfile->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( CloudSetupDlgGenerated::onAuthKeyfile ), NULL, this );
- m_radioBtnAgent->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( CloudSetupDlgGenerated::onAuthAgent ), NULL, this );
- m_buttonSelectKeyfile->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CloudSetupDlgGenerated::onSelectKeyfile ), NULL, this );
- m_checkBoxShowPassword->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( CloudSetupDlgGenerated::onToggleShowPassword ), NULL, this );
- m_buttonSelectFolder->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CloudSetupDlgGenerated::onBrowseCloudFolder ), NULL, this );
- m_buttonChannelCountSftp->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CloudSetupDlgGenerated::onDetectServerChannelLimit ), NULL, this );
- m_buttonOkay->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CloudSetupDlgGenerated::onOkay ), NULL, this );
- m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CloudSetupDlgGenerated::onCancel ), NULL, this );
+ // Connect Events
+ this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( CloudSetupDlgGenerated::onClose ) );
+ m_toggleBtnGdrive->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( CloudSetupDlgGenerated::onConnectionGdrive ), NULL, this );
+ m_toggleBtnSftp->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( CloudSetupDlgGenerated::onConnectionSftp ), NULL, this );
+ m_toggleBtnFtp->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( CloudSetupDlgGenerated::onConnectionFtp ), NULL, this );
+ m_listBoxGdriveUsers->Connect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( CloudSetupDlgGenerated::onGdriveUserSelect ), NULL, this );
+ m_buttonGdriveAddUser->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CloudSetupDlgGenerated::onGdriveUserAdd ), NULL, this );
+ m_buttonGdriveRemoveUser->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CloudSetupDlgGenerated::onGdriveUserRemove ), NULL, this );
+ m_radioBtnPassword->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( CloudSetupDlgGenerated::onAuthPassword ), NULL, this );
+ m_radioBtnKeyfile->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( CloudSetupDlgGenerated::onAuthKeyfile ), NULL, this );
+ m_radioBtnAgent->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( CloudSetupDlgGenerated::onAuthAgent ), NULL, this );
+ m_buttonSelectKeyfile->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CloudSetupDlgGenerated::onSelectKeyfile ), NULL, this );
+ m_checkBoxShowPassword->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( CloudSetupDlgGenerated::onToggleShowPassword ), NULL, this );
+ m_buttonSelectFolder->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CloudSetupDlgGenerated::onBrowseCloudFolder ), NULL, this );
+ m_buttonChannelCountSftp->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CloudSetupDlgGenerated::onDetectServerChannelLimit ), NULL, this );
+ m_buttonOkay->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CloudSetupDlgGenerated::onOkay ), NULL, this );
+ m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CloudSetupDlgGenerated::onCancel ), NULL, this );
}
CloudSetupDlgGenerated::~CloudSetupDlgGenerated()
@@ -3085,61 +3084,61 @@ CloudSetupDlgGenerated::~CloudSetupDlgGenerated()
AbstractFolderPickerGenerated::AbstractFolderPickerGenerated( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
{
- this->SetSizeHints( wxDefaultSize, wxDefaultSize );
- this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+ this->SetSizeHints( wxDefaultSize, wxDefaultSize );
+ this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
- wxBoxSizer* bSizer134;
- bSizer134 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer134;
+ bSizer134 = new wxBoxSizer( wxVERTICAL );
- m_panel41 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panel41->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_panel41 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panel41->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- wxBoxSizer* bSizer185;
- bSizer185 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer185;
+ bSizer185 = new wxBoxSizer( wxVERTICAL );
- m_staticTextStatus = new wxStaticText( m_panel41, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextStatus->Wrap( -1 );
- bSizer185->Add( m_staticTextStatus, 0, wxALL, 5 );
+ m_staticTextStatus = new wxStaticText( m_panel41, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextStatus->Wrap( -1 );
+ bSizer185->Add( m_staticTextStatus, 0, wxALL, 5 );
- m_treeCtrlFileSystem = new wxTreeCtrl( m_panel41, wxID_ANY, wxDefaultPosition, wxSize( -1, -1 ), wxTR_FULL_ROW_HIGHLIGHT|wxTR_HAS_BUTTONS|wxTR_LINES_AT_ROOT|wxTR_NO_LINES|wxBORDER_NONE );
- bSizer185->Add( m_treeCtrlFileSystem, 1, wxEXPAND, 5 );
+ m_treeCtrlFileSystem = new wxTreeCtrl( m_panel41, wxID_ANY, wxDefaultPosition, wxSize( -1,-1 ), wxTR_FULL_ROW_HIGHLIGHT|wxTR_HAS_BUTTONS|wxTR_LINES_AT_ROOT|wxTR_NO_LINES|wxBORDER_NONE );
+ bSizer185->Add( m_treeCtrlFileSystem, 1, wxEXPAND, 5 );
- m_panel41->SetSizer( bSizer185 );
- m_panel41->Layout();
- bSizer185->Fit( m_panel41 );
- bSizer134->Add( m_panel41, 1, wxEXPAND, 5 );
+ m_panel41->SetSizer( bSizer185 );
+ m_panel41->Layout();
+ bSizer185->Fit( m_panel41 );
+ bSizer134->Add( m_panel41, 1, wxEXPAND, 5 );
- m_staticline12 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer134->Add( m_staticline12, 0, wxEXPAND, 5 );
+ m_staticline12 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer134->Add( m_staticline12, 0, wxEXPAND, 5 );
- bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
+ bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
- m_buttonOkay = new wxButton( this, wxID_OK, _("Select Folder"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
+ m_buttonOkay = new wxButton( this, wxID_OK, _("Select Folder"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonOkay->SetDefault();
- m_buttonOkay->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
+ m_buttonOkay->SetDefault();
+ m_buttonOkay->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
- bSizerStdButtons->Add( m_buttonOkay, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+ bSizerStdButtons->Add( m_buttonOkay, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
- m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
- bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+ m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
- bSizer134->Add( bSizerStdButtons, 0, wxALIGN_RIGHT, 5 );
+ bSizer134->Add( bSizerStdButtons, 0, wxALIGN_RIGHT, 5 );
- this->SetSizer( bSizer134 );
- this->Layout();
- bSizer134->Fit( this );
+ this->SetSizer( bSizer134 );
+ this->Layout();
+ bSizer134->Fit( this );
- this->Centre( wxBOTH );
+ this->Centre( wxBOTH );
- // Connect Events
- this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( AbstractFolderPickerGenerated::onClose ) );
- m_treeCtrlFileSystem->Connect( wxEVT_COMMAND_TREE_ITEM_EXPANDING, wxTreeEventHandler( AbstractFolderPickerGenerated::onExpandNode ), NULL, this );
- m_buttonOkay->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( AbstractFolderPickerGenerated::onOkay ), NULL, this );
- m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( AbstractFolderPickerGenerated::onCancel ), NULL, this );
+ // Connect Events
+ this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( AbstractFolderPickerGenerated::onClose ) );
+ m_treeCtrlFileSystem->Connect( wxEVT_COMMAND_TREE_ITEM_EXPANDING, wxTreeEventHandler( AbstractFolderPickerGenerated::onExpandNode ), NULL, this );
+ m_buttonOkay->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( AbstractFolderPickerGenerated::onOkay ), NULL, this );
+ m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( AbstractFolderPickerGenerated::onCancel ), NULL, this );
}
AbstractFolderPickerGenerated::~AbstractFolderPickerGenerated()
@@ -3148,225 +3147,225 @@ AbstractFolderPickerGenerated::~AbstractFolderPickerGenerated()
SyncConfirmationDlgGenerated::SyncConfirmationDlgGenerated( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
{
- this->SetSizeHints( wxDefaultSize, wxDefaultSize );
- this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+ this->SetSizeHints( wxDefaultSize, wxDefaultSize );
+ this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
- wxBoxSizer* bSizer134;
- bSizer134 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer134;
+ bSizer134 = new wxBoxSizer( wxVERTICAL );
- wxBoxSizer* bSizer72;
- bSizer72 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer72;
+ bSizer72 = new wxBoxSizer( wxHORIZONTAL );
- m_bitmapSync = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer72->Add( m_bitmapSync, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 10 );
+ m_bitmapSync = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer72->Add( m_bitmapSync, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 10 );
- m_staticTextCaption = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextCaption->Wrap( -1 );
- bSizer72->Add( m_staticTextCaption, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 10 );
+ m_staticTextCaption = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextCaption->Wrap( -1 );
+ bSizer72->Add( m_staticTextCaption, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 10 );
- bSizer134->Add( bSizer72, 0, 0, 5 );
+ bSizer134->Add( bSizer72, 0, 0, 5 );
- m_staticline371 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer134->Add( m_staticline371, 0, wxEXPAND, 5 );
+ m_staticline371 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer134->Add( m_staticline371, 0, wxEXPAND, 5 );
- m_panelStatistics = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
- m_panelStatistics->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_panelStatistics = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
+ m_panelStatistics->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- wxBoxSizer* bSizer185;
- bSizer185 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer185;
+ bSizer185 = new wxBoxSizer( wxHORIZONTAL );
- bSizer185->Add( 40, 0, 0, 0, 5 );
+ bSizer185->Add( 40, 0, 0, 0, 5 );
- bSizer185->Add( 0, 0, 1, 0, 5 );
+ bSizer185->Add( 0, 0, 1, 0, 5 );
- m_staticline38 = new wxStaticLine( m_panelStatistics, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizer185->Add( m_staticline38, 0, wxEXPAND, 5 );
+ m_staticline38 = new wxStaticLine( m_panelStatistics, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizer185->Add( m_staticline38, 0, wxEXPAND, 5 );
- wxBoxSizer* bSizer162;
- bSizer162 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer162;
+ bSizer162 = new wxBoxSizer( wxVERTICAL );
- wxBoxSizer* bSizer182;
- bSizer182 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer182;
+ bSizer182 = new wxBoxSizer( wxHORIZONTAL );
- m_staticText84 = new wxStaticText( m_panelStatistics, wxID_ANY, _("Variant:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText84->Wrap( -1 );
- bSizer182->Add( m_staticText84, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 );
+ m_staticText84 = new wxStaticText( m_panelStatistics, wxID_ANY, _("Variant:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText84->Wrap( -1 );
+ bSizer182->Add( m_staticText84, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 );
- bSizer182->Add( 0, 0, 1, wxEXPAND, 5 );
+ bSizer182->Add( 0, 0, 1, wxEXPAND, 5 );
- m_staticTextSyncVar = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextSyncVar->Wrap( -1 );
- m_staticTextSyncVar->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
+ m_staticTextSyncVar = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextSyncVar->Wrap( -1 );
+ m_staticTextSyncVar->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
- bSizer182->Add( m_staticTextSyncVar, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+ bSizer182->Add( m_staticTextSyncVar, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
- m_bitmapSyncVar = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer182->Add( m_bitmapSyncVar, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+ m_bitmapSyncVar = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer182->Add( m_bitmapSyncVar, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
- bSizer182->Add( 0, 0, 1, wxEXPAND, 5 );
+ bSizer182->Add( 0, 0, 1, wxEXPAND, 5 );
- bSizer162->Add( bSizer182, 0, wxALL|wxEXPAND, 5 );
+ bSizer162->Add( bSizer182, 0, wxALL|wxEXPAND, 5 );
- m_staticline14 = new wxStaticLine( m_panelStatistics, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer162->Add( m_staticline14, 0, wxEXPAND, 5 );
+ m_staticline14 = new wxStaticLine( m_panelStatistics, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer162->Add( m_staticline14, 0, wxEXPAND, 5 );
- wxBoxSizer* bSizer181;
- bSizer181 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer181;
+ bSizer181 = new wxBoxSizer( wxVERTICAL );
- m_staticText83 = new wxStaticText( m_panelStatistics, wxID_ANY, _("Statistics:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText83->Wrap( -1 );
- bSizer181->Add( m_staticText83, 0, wxALL, 5 );
+ m_staticText83 = new wxStaticText( m_panelStatistics, wxID_ANY, _("Statistics:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText83->Wrap( -1 );
+ bSizer181->Add( m_staticText83, 0, wxALL, 5 );
- wxFlexGridSizer* fgSizer11;
- fgSizer11 = new wxFlexGridSizer( 2, 7, 2, 5 );
- fgSizer11->SetFlexibleDirection( wxBOTH );
- fgSizer11->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+ wxFlexGridSizer* fgSizer11;
+ fgSizer11 = new wxFlexGridSizer( 2, 7, 2, 5 );
+ fgSizer11->SetFlexibleDirection( wxBOTH );
+ fgSizer11->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
- m_bitmapDeleteLeft = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- m_bitmapDeleteLeft->SetToolTip( _("Number of files and folders that will be deleted") );
+ m_bitmapDeleteLeft = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ m_bitmapDeleteLeft->SetToolTip( _("Number of files and folders that will be deleted") );
- fgSizer11->Add( m_bitmapDeleteLeft, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+ fgSizer11->Add( m_bitmapDeleteLeft, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
- m_bitmapUpdateLeft = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- m_bitmapUpdateLeft->SetToolTip( _("Number of files that will be updated") );
+ m_bitmapUpdateLeft = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ m_bitmapUpdateLeft->SetToolTip( _("Number of files that will be updated") );
- fgSizer11->Add( m_bitmapUpdateLeft, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+ fgSizer11->Add( m_bitmapUpdateLeft, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
- m_bitmapCreateLeft = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- m_bitmapCreateLeft->SetToolTip( _("Number of files and folders that will be created") );
+ m_bitmapCreateLeft = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ m_bitmapCreateLeft->SetToolTip( _("Number of files and folders that will be created") );
- fgSizer11->Add( m_bitmapCreateLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+ fgSizer11->Add( m_bitmapCreateLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
- m_bitmapData = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- m_bitmapData->SetToolTip( _("Total bytes to copy") );
+ m_bitmapData = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ m_bitmapData->SetToolTip( _("Total bytes to copy") );
- fgSizer11->Add( m_bitmapData, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+ fgSizer11->Add( m_bitmapData, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
- m_bitmapCreateRight = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- m_bitmapCreateRight->SetToolTip( _("Number of files and folders that will be created") );
+ m_bitmapCreateRight = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ m_bitmapCreateRight->SetToolTip( _("Number of files and folders that will be created") );
- fgSizer11->Add( m_bitmapCreateRight, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+ fgSizer11->Add( m_bitmapCreateRight, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
- m_bitmapUpdateRight = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- m_bitmapUpdateRight->SetToolTip( _("Number of files that will be updated") );
+ m_bitmapUpdateRight = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ m_bitmapUpdateRight->SetToolTip( _("Number of files that will be updated") );
- fgSizer11->Add( m_bitmapUpdateRight, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+ fgSizer11->Add( m_bitmapUpdateRight, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
- m_bitmapDeleteRight = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- m_bitmapDeleteRight->SetToolTip( _("Number of files and folders that will be deleted") );
+ m_bitmapDeleteRight = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ m_bitmapDeleteRight->SetToolTip( _("Number of files and folders that will be deleted") );
- fgSizer11->Add( m_bitmapDeleteRight, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+ fgSizer11->Add( m_bitmapDeleteRight, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
- m_staticTextDeleteLeft = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextDeleteLeft->Wrap( -1 );
- m_staticTextDeleteLeft->SetToolTip( _("Number of files and folders that will be deleted") );
+ m_staticTextDeleteLeft = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextDeleteLeft->Wrap( -1 );
+ m_staticTextDeleteLeft->SetToolTip( _("Number of files and folders that will be deleted") );
- fgSizer11->Add( m_staticTextDeleteLeft, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+ fgSizer11->Add( m_staticTextDeleteLeft, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
- m_staticTextUpdateLeft = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextUpdateLeft->Wrap( -1 );
- m_staticTextUpdateLeft->SetToolTip( _("Number of files that will be updated") );
+ m_staticTextUpdateLeft = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextUpdateLeft->Wrap( -1 );
+ m_staticTextUpdateLeft->SetToolTip( _("Number of files that will be updated") );
- fgSizer11->Add( m_staticTextUpdateLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+ fgSizer11->Add( m_staticTextUpdateLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
- m_staticTextCreateLeft = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextCreateLeft->Wrap( -1 );
- m_staticTextCreateLeft->SetToolTip( _("Number of files and folders that will be created") );
+ m_staticTextCreateLeft = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextCreateLeft->Wrap( -1 );
+ m_staticTextCreateLeft->SetToolTip( _("Number of files and folders that will be created") );
- fgSizer11->Add( m_staticTextCreateLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+ fgSizer11->Add( m_staticTextCreateLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
- m_staticTextData = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextData->Wrap( -1 );
- m_staticTextData->SetToolTip( _("Total bytes to copy") );
+ m_staticTextData = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextData->Wrap( -1 );
+ m_staticTextData->SetToolTip( _("Total bytes to copy") );
- fgSizer11->Add( m_staticTextData, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+ fgSizer11->Add( m_staticTextData, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
- m_staticTextCreateRight = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextCreateRight->Wrap( -1 );
- m_staticTextCreateRight->SetToolTip( _("Number of files and folders that will be created") );
+ m_staticTextCreateRight = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextCreateRight->Wrap( -1 );
+ m_staticTextCreateRight->SetToolTip( _("Number of files and folders that will be created") );
- fgSizer11->Add( m_staticTextCreateRight, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+ fgSizer11->Add( m_staticTextCreateRight, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
- m_staticTextUpdateRight = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextUpdateRight->Wrap( -1 );
- m_staticTextUpdateRight->SetToolTip( _("Number of files that will be updated") );
+ m_staticTextUpdateRight = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextUpdateRight->Wrap( -1 );
+ m_staticTextUpdateRight->SetToolTip( _("Number of files that will be updated") );
- fgSizer11->Add( m_staticTextUpdateRight, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+ fgSizer11->Add( m_staticTextUpdateRight, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
- m_staticTextDeleteRight = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextDeleteRight->Wrap( -1 );
- m_staticTextDeleteRight->SetToolTip( _("Number of files and folders that will be deleted") );
+ m_staticTextDeleteRight = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextDeleteRight->Wrap( -1 );
+ m_staticTextDeleteRight->SetToolTip( _("Number of files and folders that will be deleted") );
- fgSizer11->Add( m_staticTextDeleteRight, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+ fgSizer11->Add( m_staticTextDeleteRight, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
- bSizer181->Add( fgSizer11, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
+ bSizer181->Add( fgSizer11, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
- bSizer162->Add( bSizer181, 0, wxEXPAND|wxALL, 5 );
+ bSizer162->Add( bSizer181, 0, wxEXPAND|wxALL, 5 );
- bSizer185->Add( bSizer162, 0, 0, 5 );
+ bSizer185->Add( bSizer162, 0, 0, 5 );
- m_staticline381 = new wxStaticLine( m_panelStatistics, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizer185->Add( m_staticline381, 0, wxEXPAND, 5 );
+ m_staticline381 = new wxStaticLine( m_panelStatistics, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizer185->Add( m_staticline381, 0, wxEXPAND, 5 );
- bSizer185->Add( 0, 0, 1, 0, 5 );
+ bSizer185->Add( 0, 0, 1, 0, 5 );
- bSizer185->Add( 40, 0, 0, 0, 5 );
+ bSizer185->Add( 40, 0, 0, 0, 5 );
- m_panelStatistics->SetSizer( bSizer185 );
- m_panelStatistics->Layout();
- bSizer185->Fit( m_panelStatistics );
- bSizer134->Add( m_panelStatistics, 0, wxEXPAND, 5 );
+ m_panelStatistics->SetSizer( bSizer185 );
+ m_panelStatistics->Layout();
+ bSizer185->Fit( m_panelStatistics );
+ bSizer134->Add( m_panelStatistics, 0, wxEXPAND, 5 );
- m_staticline12 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer134->Add( m_staticline12, 0, wxEXPAND, 5 );
+ m_staticline12 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer134->Add( m_staticline12, 0, wxEXPAND, 5 );
- wxBoxSizer* bSizer164;
- bSizer164 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer164;
+ bSizer164 = new wxBoxSizer( wxVERTICAL );
- m_checkBoxDontShowAgain = new wxCheckBox( this, wxID_ANY, _("&Don't show this dialog again"), wxDefaultPosition, wxDefaultSize, 0 );
- bSizer164->Add( m_checkBoxDontShowAgain, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
+ m_checkBoxDontShowAgain = new wxCheckBox( this, wxID_ANY, _("&Don't show this dialog again"), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer164->Add( m_checkBoxDontShowAgain, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
- bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
+ bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
- m_buttonStartSync = new wxButton( this, wxID_OK, _("Start"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
+ m_buttonStartSync = new wxButton( this, wxID_OK, _("Start"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonStartSync->SetDefault();
- m_buttonStartSync->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
+ m_buttonStartSync->SetDefault();
+ m_buttonStartSync->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
- bSizerStdButtons->Add( m_buttonStartSync, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+ bSizerStdButtons->Add( m_buttonStartSync, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
- m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
- bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
+ m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
- bSizer164->Add( bSizerStdButtons, 0, wxALIGN_RIGHT, 5 );
+ bSizer164->Add( bSizerStdButtons, 0, wxALIGN_RIGHT, 5 );
- bSizer134->Add( bSizer164, 1, wxEXPAND, 5 );
+ bSizer134->Add( bSizer164, 1, wxEXPAND, 5 );
- this->SetSizer( bSizer134 );
- this->Layout();
- bSizer134->Fit( this );
+ this->SetSizer( bSizer134 );
+ this->Layout();
+ bSizer134->Fit( this );
- this->Centre( wxBOTH );
+ this->Centre( wxBOTH );
- // Connect Events
- this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( SyncConfirmationDlgGenerated::onClose ) );
- m_buttonStartSync->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncConfirmationDlgGenerated::onStartSync ), NULL, this );
- m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncConfirmationDlgGenerated::onCancel ), NULL, this );
+ // Connect Events
+ this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( SyncConfirmationDlgGenerated::onClose ) );
+ m_buttonStartSync->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncConfirmationDlgGenerated::onStartSync ), NULL, this );
+ m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncConfirmationDlgGenerated::onCancel ), NULL, this );
}
SyncConfirmationDlgGenerated::~SyncConfirmationDlgGenerated()
@@ -3375,198 +3374,198 @@ SyncConfirmationDlgGenerated::~SyncConfirmationDlgGenerated()
CompareProgressDlgGenerated::CompareProgressDlgGenerated( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style, const wxString& name ) : wxPanel( parent, id, pos, size, style, name )
{
- this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- wxBoxSizer* bSizer1811;
- bSizer1811 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer1811;
+ bSizer1811 = new wxBoxSizer( wxVERTICAL );
- bSizer1811->Add( 0, 0, 1, 0, 5 );
+ bSizer1811->Add( 0, 0, 1, 0, 5 );
- m_staticTextStatus = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextStatus->Wrap( -1 );
- bSizer1811->Add( m_staticTextStatus, 0, wxTOP|wxRIGHT|wxLEFT, 10 );
+ m_staticTextStatus = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextStatus->Wrap( -1 );
+ bSizer1811->Add( m_staticTextStatus, 0, wxTOP|wxRIGHT|wxLEFT, 10 );
- wxBoxSizer* bSizer199;
- bSizer199 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer199;
+ bSizer199 = new wxBoxSizer( wxHORIZONTAL );
- bSizer199->Add( 10, 0, 0, 0, 5 );
+ bSizer199->Add( 10, 0, 0, 0, 5 );
- ffgSizer11 = new wxFlexGridSizer( 2, 0, 5, 5 );
- ffgSizer11->SetFlexibleDirection( wxBOTH );
- ffgSizer11->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+ ffgSizer11 = new wxFlexGridSizer( 2, 0, 5, 5 );
+ ffgSizer11->SetFlexibleDirection( wxBOTH );
+ ffgSizer11->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
- m_staticTextProcessed = new wxStaticText( this, wxID_ANY, _("Processed:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextProcessed->Wrap( -1 );
- ffgSizer11->Add( m_staticTextProcessed, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxRIGHT, 5 );
+ m_staticTextProcessed = new wxStaticText( this, wxID_ANY, _("Processed:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextProcessed->Wrap( -1 );
+ ffgSizer11->Add( m_staticTextProcessed, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxRIGHT, 5 );
- m_staticTextRemaining = new wxStaticText( this, wxID_ANY, _("Remaining:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextRemaining->Wrap( -1 );
- ffgSizer11->Add( m_staticTextRemaining, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+ m_staticTextRemaining = new wxStaticText( this, wxID_ANY, _("Remaining:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextRemaining->Wrap( -1 );
+ ffgSizer11->Add( m_staticTextRemaining, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
- bSizer199->Add( ffgSizer11, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 10 );
+ bSizer199->Add( ffgSizer11, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 10 );
- m_panelItemStats = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
- m_panelItemStats->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+ m_panelItemStats = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
+ m_panelItemStats->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
- wxBoxSizer* bSizer291;
- bSizer291 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer291;
+ bSizer291 = new wxBoxSizer( wxVERTICAL );
- ffgSizer111 = new wxFlexGridSizer( 0, 2, 5, 5 );
- ffgSizer111->SetFlexibleDirection( wxBOTH );
- ffgSizer111->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+ ffgSizer111 = new wxFlexGridSizer( 0, 2, 5, 5 );
+ ffgSizer111->SetFlexibleDirection( wxBOTH );
+ ffgSizer111->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
- wxBoxSizer* bSizer293;
- bSizer293 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer293;
+ bSizer293 = new wxBoxSizer( wxHORIZONTAL );
- m_bitmapItemStat = new wxStaticBitmap( m_panelItemStats, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer293->Add( m_bitmapItemStat, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+ m_bitmapItemStat = new wxStaticBitmap( m_panelItemStats, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer293->Add( m_bitmapItemStat, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
- bSizer293->Add( 0, 0, 1, 0, 5 );
+ bSizer293->Add( 0, 0, 1, 0, 5 );
- m_staticTextItemsProcessed = new wxStaticText( m_panelItemStats, wxID_ANY, _("dummy"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
- m_staticTextItemsProcessed->Wrap( -1 );
- m_staticTextItemsProcessed->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
+ m_staticTextItemsProcessed = new wxStaticText( m_panelItemStats, wxID_ANY, _("dummy"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_staticTextItemsProcessed->Wrap( -1 );
+ m_staticTextItemsProcessed->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
- bSizer293->Add( m_staticTextItemsProcessed, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ bSizer293->Add( m_staticTextItemsProcessed, 0, wxALIGN_CENTER_VERTICAL, 5 );
- ffgSizer111->Add( bSizer293, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+ ffgSizer111->Add( bSizer293, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
- m_staticTextBytesProcessed = new wxStaticText( m_panelItemStats, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextBytesProcessed->Wrap( -1 );
- ffgSizer111->Add( m_staticTextBytesProcessed, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
+ m_staticTextBytesProcessed = new wxStaticText( m_panelItemStats, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextBytesProcessed->Wrap( -1 );
+ ffgSizer111->Add( m_staticTextBytesProcessed, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
- m_staticTextItemsRemaining = new wxStaticText( m_panelItemStats, wxID_ANY, _("dummy"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
- m_staticTextItemsRemaining->Wrap( -1 );
- m_staticTextItemsRemaining->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
+ m_staticTextItemsRemaining = new wxStaticText( m_panelItemStats, wxID_ANY, _("dummy"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_staticTextItemsRemaining->Wrap( -1 );
+ m_staticTextItemsRemaining->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
- ffgSizer111->Add( m_staticTextItemsRemaining, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5 );
+ ffgSizer111->Add( m_staticTextItemsRemaining, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5 );
- m_staticTextBytesRemaining = new wxStaticText( m_panelItemStats, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextBytesRemaining->Wrap( -1 );
- ffgSizer111->Add( m_staticTextBytesRemaining, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5 );
+ m_staticTextBytesRemaining = new wxStaticText( m_panelItemStats, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextBytesRemaining->Wrap( -1 );
+ ffgSizer111->Add( m_staticTextBytesRemaining, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5 );
- bSizer291->Add( ffgSizer111, 0, wxALL, 5 );
+ bSizer291->Add( ffgSizer111, 0, wxALL, 5 );
- m_panelItemStats->SetSizer( bSizer291 );
- m_panelItemStats->Layout();
- bSizer291->Fit( m_panelItemStats );
- bSizer199->Add( m_panelItemStats, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 10 );
+ m_panelItemStats->SetSizer( bSizer291 );
+ m_panelItemStats->Layout();
+ bSizer291->Fit( m_panelItemStats );
+ bSizer199->Add( m_panelItemStats, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 10 );
- m_panelTimeStats = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
- m_panelTimeStats->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+ m_panelTimeStats = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
+ m_panelTimeStats->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
- wxBoxSizer* bSizer292;
- bSizer292 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer292;
+ bSizer292 = new wxBoxSizer( wxVERTICAL );
- ffgSizer112 = new wxFlexGridSizer( 0, 1, 5, 5 );
- ffgSizer112->SetFlexibleDirection( wxBOTH );
- ffgSizer112->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+ ffgSizer112 = new wxFlexGridSizer( 0, 1, 5, 5 );
+ ffgSizer112->SetFlexibleDirection( wxBOTH );
+ ffgSizer112->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
- wxBoxSizer* bSizer294;
- bSizer294 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer294;
+ bSizer294 = new wxBoxSizer( wxHORIZONTAL );
- m_bitmapTimeStat = new wxStaticBitmap( m_panelTimeStats, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer294->Add( m_bitmapTimeStat, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+ m_bitmapTimeStat = new wxStaticBitmap( m_panelTimeStats, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer294->Add( m_bitmapTimeStat, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
- bSizer294->Add( 0, 0, 1, 0, 5 );
+ bSizer294->Add( 0, 0, 1, 0, 5 );
- m_staticTextTimeElapsed = new wxStaticText( m_panelTimeStats, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextTimeElapsed->Wrap( -1 );
- m_staticTextTimeElapsed->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
+ m_staticTextTimeElapsed = new wxStaticText( m_panelTimeStats, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextTimeElapsed->Wrap( -1 );
+ m_staticTextTimeElapsed->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
- bSizer294->Add( m_staticTextTimeElapsed, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ bSizer294->Add( m_staticTextTimeElapsed, 0, wxALIGN_CENTER_VERTICAL, 5 );
- ffgSizer112->Add( bSizer294, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+ ffgSizer112->Add( bSizer294, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
- m_staticTextTimeRemaining = new wxStaticText( m_panelTimeStats, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextTimeRemaining->Wrap( -1 );
- m_staticTextTimeRemaining->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
+ m_staticTextTimeRemaining = new wxStaticText( m_panelTimeStats, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextTimeRemaining->Wrap( -1 );
+ m_staticTextTimeRemaining->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
- ffgSizer112->Add( m_staticTextTimeRemaining, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
+ ffgSizer112->Add( m_staticTextTimeRemaining, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
- bSizer292->Add( ffgSizer112, 0, wxALL, 5 );
+ bSizer292->Add( ffgSizer112, 0, wxALL, 5 );
- m_panelTimeStats->SetSizer( bSizer292 );
- m_panelTimeStats->Layout();
- bSizer292->Fit( m_panelTimeStats );
- bSizer199->Add( m_panelTimeStats, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 10 );
+ m_panelTimeStats->SetSizer( bSizer292 );
+ m_panelTimeStats->Layout();
+ bSizer292->Fit( m_panelTimeStats );
+ bSizer199->Add( m_panelTimeStats, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 10 );
- bSizerErrorsRetry = new wxBoxSizer( wxHORIZONTAL );
+ bSizerErrorsRetry = new wxBoxSizer( wxHORIZONTAL );
- m_bitmapRetryErrors = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizerErrorsRetry->Add( m_bitmapRetryErrors, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ m_bitmapRetryErrors = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizerErrorsRetry->Add( m_bitmapRetryErrors, 0, wxALIGN_CENTER_VERTICAL, 5 );
- m_staticText1461 = new wxStaticText( this, wxID_ANY, _("Automatic retry"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText1461->Wrap( -1 );
- bSizerErrorsRetry->Add( m_staticText1461, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
+ m_staticText1461 = new wxStaticText( this, wxID_ANY, _("Automatic retry"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText1461->Wrap( -1 );
+ bSizerErrorsRetry->Add( m_staticText1461, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
- m_staticTextRetryCount = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextRetryCount->Wrap( -1 );
- bSizerErrorsRetry->Add( m_staticTextRetryCount, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ m_staticTextRetryCount = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextRetryCount->Wrap( -1 );
+ bSizerErrorsRetry->Add( m_staticTextRetryCount, 0, wxALIGN_CENTER_VERTICAL, 5 );
- bSizer199->Add( bSizerErrorsRetry, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 10 );
+ bSizer199->Add( bSizerErrorsRetry, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 10 );
- bSizerErrorsIgnore = new wxBoxSizer( wxHORIZONTAL );
+ bSizerErrorsIgnore = new wxBoxSizer( wxHORIZONTAL );
- m_bitmapIgnoreErrors = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizerErrorsIgnore->Add( m_bitmapIgnoreErrors, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ m_bitmapIgnoreErrors = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizerErrorsIgnore->Add( m_bitmapIgnoreErrors, 0, wxALIGN_CENTER_VERTICAL, 5 );
- m_staticText146 = new wxStaticText( this, wxID_ANY, _("Ignore errors"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText146->Wrap( -1 );
- bSizerErrorsIgnore->Add( m_staticText146, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
+ m_staticText146 = new wxStaticText( this, wxID_ANY, _("Ignore errors"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText146->Wrap( -1 );
+ bSizerErrorsIgnore->Add( m_staticText146, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
- bSizer199->Add( bSizerErrorsIgnore, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 10 );
+ bSizer199->Add( bSizerErrorsIgnore, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 10 );
- bSizerProgressGraph = new wxBoxSizer( wxHORIZONTAL );
+ bSizerProgressGraph = new wxBoxSizer( wxHORIZONTAL );
- ffgSizer113 = new wxFlexGridSizer( 2, 0, 5, 5 );
- ffgSizer113->SetFlexibleDirection( wxBOTH );
- ffgSizer113->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+ ffgSizer113 = new wxFlexGridSizer( 2, 0, 5, 5 );
+ ffgSizer113->SetFlexibleDirection( wxBOTH );
+ ffgSizer113->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
- wxStaticText* m_staticText99;
- m_staticText99 = new wxStaticText( this, wxID_ANY, _("Bytes:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText99->Wrap( -1 );
- ffgSizer113->Add( m_staticText99, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5 );
+ wxStaticText* m_staticText99;
+ m_staticText99 = new wxStaticText( this, wxID_ANY, _("Bytes:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText99->Wrap( -1 );
+ ffgSizer113->Add( m_staticText99, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5 );
- wxStaticText* m_staticText100;
- m_staticText100 = new wxStaticText( this, wxID_ANY, _("Items:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText100->Wrap( -1 );
- ffgSizer113->Add( m_staticText100, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5 );
+ wxStaticText* m_staticText100;
+ m_staticText100 = new wxStaticText( this, wxID_ANY, _("Items:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText100->Wrap( -1 );
+ ffgSizer113->Add( m_staticText100, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5 );
- bSizerProgressGraph->Add( ffgSizer113, 0, wxALL, 5 );
+ bSizerProgressGraph->Add( ffgSizer113, 0, wxALL, 5 );
- m_panelProgressGraph = new zen::Graph2D( this, wxID_ANY, wxDefaultPosition, wxSize( -1, -1 ), 0 );
- m_panelProgressGraph->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+ m_panelProgressGraph = new zen::Graph2D( this, wxID_ANY, wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_panelProgressGraph->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
- bSizerProgressGraph->Add( m_panelProgressGraph, 1, wxEXPAND, 5 );
+ bSizerProgressGraph->Add( m_panelProgressGraph, 1, wxEXPAND, 5 );
- bSizer199->Add( bSizerProgressGraph, 1, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 10 );
+ bSizer199->Add( bSizerProgressGraph, 1, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 10 );
- bSizer1811->Add( bSizer199, 0, wxEXPAND, 5 );
+ bSizer1811->Add( bSizer199, 0, wxEXPAND, 5 );
- bSizer1811->Add( 0, 0, 1, 0, 5 );
+ bSizer1811->Add( 0, 0, 1, 0, 5 );
- this->SetSizer( bSizer1811 );
- this->Layout();
- bSizer1811->Fit( this );
+ this->SetSizer( bSizer1811 );
+ this->Layout();
+ bSizer1811->Fit( this );
}
CompareProgressDlgGenerated::~CompareProgressDlgGenerated()
@@ -3575,336 +3574,336 @@ CompareProgressDlgGenerated::~CompareProgressDlgGenerated()
SyncProgressPanelGenerated::SyncProgressPanelGenerated( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style, const wxString& name ) : wxPanel( parent, id, pos, size, style, name )
{
- bSizerRoot = new wxBoxSizer( wxVERTICAL );
+ bSizerRoot = new wxBoxSizer( wxVERTICAL );
- m_panel53 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panel53->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_panel53 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panel53->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- wxBoxSizer* bSizer301;
- bSizer301 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer301;
+ bSizer301 = new wxBoxSizer( wxVERTICAL );
- bSizer42 = new wxBoxSizer( wxHORIZONTAL );
+ bSizer42 = new wxBoxSizer( wxHORIZONTAL );
- bSizer42->Add( 0, 0, 1, wxEXPAND, 5 );
+ bSizer42->Add( 0, 0, 1, wxEXPAND, 5 );
- m_bitmapStatus = new wxStaticBitmap( m_panel53, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), 0 );
- bSizer42->Add( m_bitmapStatus, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2 );
+ m_bitmapStatus = new wxStaticBitmap( m_panel53, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizer42->Add( m_bitmapStatus, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2 );
- m_staticTextPhase = new wxStaticText( m_panel53, wxID_ANY, _("Synchronizing..."), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextPhase->Wrap( -1 );
- m_staticTextPhase->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
+ m_staticTextPhase = new wxStaticText( m_panel53, wxID_ANY, _("Synchronizing..."), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextPhase->Wrap( -1 );
+ m_staticTextPhase->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
- bSizer42->Add( m_staticTextPhase, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+ bSizer42->Add( m_staticTextPhase, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
- wxBoxSizer* bSizer247;
- bSizer247 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer247;
+ bSizer247 = new wxBoxSizer( wxHORIZONTAL );
- bSizer247->Add( 0, 0, 1, 0, 5 );
+ bSizer247->Add( 0, 0, 1, 0, 5 );
- m_bpButtonMinimizeToTray = new wxBitmapButton( m_panel53, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- m_bpButtonMinimizeToTray->SetToolTip( _("Minimize to notification area") );
+ m_bpButtonMinimizeToTray = new wxBitmapButton( m_panel53, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ m_bpButtonMinimizeToTray->SetToolTip( _("Minimize to notification area") );
- bSizer247->Add( m_bpButtonMinimizeToTray, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5 );
+ bSizer247->Add( m_bpButtonMinimizeToTray, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5 );
- bSizer42->Add( bSizer247, 1, wxALIGN_CENTER_VERTICAL, 5 );
+ bSizer42->Add( bSizer247, 1, wxALIGN_CENTER_VERTICAL, 5 );
- bSizer301->Add( bSizer42, 0, wxEXPAND, 5 );
+ bSizer301->Add( bSizer42, 0, wxEXPAND, 5 );
- bSizerStatusText = new wxBoxSizer( wxVERTICAL );
+ bSizerStatusText = new wxBoxSizer( wxVERTICAL );
- m_staticTextStatus = new wxStaticText( m_panel53, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextStatus->Wrap( -1 );
- bSizerStatusText->Add( m_staticTextStatus, 0, wxEXPAND|wxLEFT, 15 );
+ m_staticTextStatus = new wxStaticText( m_panel53, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextStatus->Wrap( -1 );
+ bSizerStatusText->Add( m_staticTextStatus, 0, wxEXPAND|wxLEFT, 15 );
- bSizerStatusText->Add( 0, 10, 0, 0, 5 );
+ bSizerStatusText->Add( 0, 10, 0, 0, 5 );
- bSizer301->Add( bSizerStatusText, 0, wxEXPAND, 5 );
+ bSizer301->Add( bSizerStatusText, 0, wxEXPAND, 5 );
- m_panel53->SetSizer( bSizer301 );
- m_panel53->Layout();
- bSizer301->Fit( m_panel53 );
- bSizerRoot->Add( m_panel53, 0, wxEXPAND, 5 );
+ m_panel53->SetSizer( bSizer301 );
+ m_panel53->Layout();
+ bSizer301->Fit( m_panel53 );
+ bSizerRoot->Add( m_panel53, 0, wxEXPAND, 5 );
- m_panelProgress = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panelProgress->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_panelProgress = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panelProgress->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- wxBoxSizer* bSizer173;
- bSizer173 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer173;
+ bSizer173 = new wxBoxSizer( wxHORIZONTAL );
- wxBoxSizer* bSizer161;
- bSizer161 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer161;
+ bSizer161 = new wxBoxSizer( wxVERTICAL );
- m_panelGraphBytes = new zen::Graph2D( m_panelProgress, wxID_ANY, wxDefaultPosition, wxSize( -1, -1 ), 0 );
- m_panelGraphBytes->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_panelGraphBytes = new zen::Graph2D( m_panelProgress, wxID_ANY, wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_panelGraphBytes->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- bSizer161->Add( m_panelGraphBytes, 1, wxEXPAND|wxLEFT, 10 );
+ bSizer161->Add( m_panelGraphBytes, 1, wxEXPAND|wxLEFT, 10 );
- wxBoxSizer* bSizer232;
- bSizer232 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer232;
+ bSizer232 = new wxBoxSizer( wxHORIZONTAL );
- wxBoxSizer* bSizer233;
- bSizer233 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer233;
+ bSizer233 = new wxBoxSizer( wxVERTICAL );
- wxBoxSizer* bSizer175;
- bSizer175 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer175;
+ bSizer175 = new wxBoxSizer( wxHORIZONTAL );
- m_bitmapGraphKeyBytes = new wxStaticBitmap( m_panelProgress, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer175->Add( m_bitmapGraphKeyBytes, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+ m_bitmapGraphKeyBytes = new wxStaticBitmap( m_panelProgress, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer175->Add( m_bitmapGraphKeyBytes, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
- wxStaticText* m_staticText99;
- m_staticText99 = new wxStaticText( m_panelProgress, wxID_ANY, _("Bytes"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText99->Wrap( -1 );
- bSizer175->Add( m_staticText99, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ wxStaticText* m_staticText99;
+ m_staticText99 = new wxStaticText( m_panelProgress, wxID_ANY, _("Bytes"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText99->Wrap( -1 );
+ bSizer175->Add( m_staticText99, 0, wxALIGN_CENTER_VERTICAL, 5 );
- bSizer233->Add( bSizer175, 0, wxALL, 5 );
+ bSizer233->Add( bSizer175, 0, wxALL, 5 );
- bSizer233->Add( 0, 0, 1, 0, 5 );
+ bSizer233->Add( 0, 0, 1, 0, 5 );
- wxBoxSizer* bSizer174;
- bSizer174 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer174;
+ bSizer174 = new wxBoxSizer( wxHORIZONTAL );
- m_bitmapGraphKeyItems = new wxStaticBitmap( m_panelProgress, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer174->Add( m_bitmapGraphKeyItems, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+ m_bitmapGraphKeyItems = new wxStaticBitmap( m_panelProgress, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer174->Add( m_bitmapGraphKeyItems, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
- wxStaticText* m_staticText100;
- m_staticText100 = new wxStaticText( m_panelProgress, wxID_ANY, _("Items"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText100->Wrap( -1 );
- bSizer174->Add( m_staticText100, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ wxStaticText* m_staticText100;
+ m_staticText100 = new wxStaticText( m_panelProgress, wxID_ANY, _("Items"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText100->Wrap( -1 );
+ bSizer174->Add( m_staticText100, 0, wxALIGN_CENTER_VERTICAL, 5 );
- bSizer233->Add( bSizer174, 0, wxALL, 5 );
+ bSizer233->Add( bSizer174, 0, wxALL, 5 );
- bSizer232->Add( bSizer233, 1, wxEXPAND|wxRIGHT|wxLEFT, 5 );
+ bSizer232->Add( bSizer233, 1, wxEXPAND|wxRIGHT|wxLEFT, 5 );
- ffgSizer11 = new wxFlexGridSizer( 2, 0, 5, 5 );
- ffgSizer11->SetFlexibleDirection( wxBOTH );
- ffgSizer11->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+ ffgSizer11 = new wxFlexGridSizer( 2, 0, 5, 5 );
+ ffgSizer11->SetFlexibleDirection( wxBOTH );
+ ffgSizer11->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
- m_staticTextProcessed = new wxStaticText( m_panelProgress, wxID_ANY, _("Processed:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextProcessed->Wrap( -1 );
- ffgSizer11->Add( m_staticTextProcessed, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxRIGHT, 5 );
+ m_staticTextProcessed = new wxStaticText( m_panelProgress, wxID_ANY, _("Processed:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextProcessed->Wrap( -1 );
+ ffgSizer11->Add( m_staticTextProcessed, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxRIGHT, 5 );
- m_staticTextRemaining = new wxStaticText( m_panelProgress, wxID_ANY, _("Remaining:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextRemaining->Wrap( -1 );
- ffgSizer11->Add( m_staticTextRemaining, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+ m_staticTextRemaining = new wxStaticText( m_panelProgress, wxID_ANY, _("Remaining:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextRemaining->Wrap( -1 );
+ ffgSizer11->Add( m_staticTextRemaining, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
- bSizer232->Add( ffgSizer11, 0, wxTOP|wxBOTTOM|wxALIGN_CENTER_VERTICAL, 10 );
+ bSizer232->Add( ffgSizer11, 0, wxTOP|wxBOTTOM|wxALIGN_CENTER_VERTICAL, 10 );
- m_panelItemStats = new wxPanel( m_panelProgress, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
- m_panelItemStats->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+ m_panelItemStats = new wxPanel( m_panelProgress, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
+ m_panelItemStats->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
- wxBoxSizer* bSizer291;
- bSizer291 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer291;
+ bSizer291 = new wxBoxSizer( wxVERTICAL );
- ffgSizer111 = new wxFlexGridSizer( 2, 0, 5, 5 );
- ffgSizer111->SetFlexibleDirection( wxBOTH );
- ffgSizer111->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+ ffgSizer111 = new wxFlexGridSizer( 2, 0, 5, 5 );
+ ffgSizer111->SetFlexibleDirection( wxBOTH );
+ ffgSizer111->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
- wxBoxSizer* bSizer293;
- bSizer293 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer293;
+ bSizer293 = new wxBoxSizer( wxHORIZONTAL );
- m_bitmapItemStat = new wxStaticBitmap( m_panelItemStats, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer293->Add( m_bitmapItemStat, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+ m_bitmapItemStat = new wxStaticBitmap( m_panelItemStats, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer293->Add( m_bitmapItemStat, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
- bSizer293->Add( 0, 0, 1, 0, 5 );
+ bSizer293->Add( 0, 0, 1, 0, 5 );
- m_staticTextItemsProcessed = new wxStaticText( m_panelItemStats, wxID_ANY, _("dummy"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
- m_staticTextItemsProcessed->Wrap( -1 );
- m_staticTextItemsProcessed->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
+ m_staticTextItemsProcessed = new wxStaticText( m_panelItemStats, wxID_ANY, _("dummy"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_staticTextItemsProcessed->Wrap( -1 );
+ m_staticTextItemsProcessed->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
- bSizer293->Add( m_staticTextItemsProcessed, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ bSizer293->Add( m_staticTextItemsProcessed, 0, wxALIGN_CENTER_VERTICAL, 5 );
- ffgSizer111->Add( bSizer293, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+ ffgSizer111->Add( bSizer293, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
- m_staticTextBytesProcessed = new wxStaticText( m_panelItemStats, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextBytesProcessed->Wrap( -1 );
- ffgSizer111->Add( m_staticTextBytesProcessed, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
+ m_staticTextBytesProcessed = new wxStaticText( m_panelItemStats, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextBytesProcessed->Wrap( -1 );
+ ffgSizer111->Add( m_staticTextBytesProcessed, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
- m_staticTextItemsRemaining = new wxStaticText( m_panelItemStats, wxID_ANY, _("dummy"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
- m_staticTextItemsRemaining->Wrap( -1 );
- m_staticTextItemsRemaining->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
+ m_staticTextItemsRemaining = new wxStaticText( m_panelItemStats, wxID_ANY, _("dummy"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_staticTextItemsRemaining->Wrap( -1 );
+ m_staticTextItemsRemaining->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
- ffgSizer111->Add( m_staticTextItemsRemaining, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5 );
+ ffgSizer111->Add( m_staticTextItemsRemaining, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5 );
- m_staticTextBytesRemaining = new wxStaticText( m_panelItemStats, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextBytesRemaining->Wrap( -1 );
- ffgSizer111->Add( m_staticTextBytesRemaining, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5 );
+ m_staticTextBytesRemaining = new wxStaticText( m_panelItemStats, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextBytesRemaining->Wrap( -1 );
+ ffgSizer111->Add( m_staticTextBytesRemaining, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5 );
- bSizer291->Add( ffgSizer111, 0, wxALL, 5 );
+ bSizer291->Add( ffgSizer111, 0, wxALL, 5 );
- m_panelItemStats->SetSizer( bSizer291 );
- m_panelItemStats->Layout();
- bSizer291->Fit( m_panelItemStats );
- bSizer232->Add( m_panelItemStats, 0, wxTOP|wxBOTTOM|wxRIGHT|wxALIGN_CENTER_VERTICAL, 10 );
+ m_panelItemStats->SetSizer( bSizer291 );
+ m_panelItemStats->Layout();
+ bSizer291->Fit( m_panelItemStats );
+ bSizer232->Add( m_panelItemStats, 0, wxTOP|wxBOTTOM|wxRIGHT|wxALIGN_CENTER_VERTICAL, 10 );
- m_panelTimeStats = new wxPanel( m_panelProgress, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
- m_panelTimeStats->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+ m_panelTimeStats = new wxPanel( m_panelProgress, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
+ m_panelTimeStats->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
- wxBoxSizer* bSizer292;
- bSizer292 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer292;
+ bSizer292 = new wxBoxSizer( wxVERTICAL );
- ffgSizer112 = new wxFlexGridSizer( 2, 0, 5, 5 );
- ffgSizer112->SetFlexibleDirection( wxBOTH );
- ffgSizer112->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+ ffgSizer112 = new wxFlexGridSizer( 2, 0, 5, 5 );
+ ffgSizer112->SetFlexibleDirection( wxBOTH );
+ ffgSizer112->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
- wxBoxSizer* bSizer294;
- bSizer294 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer294;
+ bSizer294 = new wxBoxSizer( wxHORIZONTAL );
- m_bitmapTimeStat = new wxStaticBitmap( m_panelTimeStats, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer294->Add( m_bitmapTimeStat, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+ m_bitmapTimeStat = new wxStaticBitmap( m_panelTimeStats, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer294->Add( m_bitmapTimeStat, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
- bSizer294->Add( 0, 0, 1, 0, 5 );
+ bSizer294->Add( 0, 0, 1, 0, 5 );
- m_staticTextTimeElapsed = new wxStaticText( m_panelTimeStats, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextTimeElapsed->Wrap( -1 );
- m_staticTextTimeElapsed->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
+ m_staticTextTimeElapsed = new wxStaticText( m_panelTimeStats, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextTimeElapsed->Wrap( -1 );
+ m_staticTextTimeElapsed->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
- bSizer294->Add( m_staticTextTimeElapsed, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ bSizer294->Add( m_staticTextTimeElapsed, 0, wxALIGN_CENTER_VERTICAL, 5 );
- ffgSizer112->Add( bSizer294, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+ ffgSizer112->Add( bSizer294, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
- m_staticTextTimeRemaining = new wxStaticText( m_panelTimeStats, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextTimeRemaining->Wrap( -1 );
- m_staticTextTimeRemaining->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
+ m_staticTextTimeRemaining = new wxStaticText( m_panelTimeStats, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextTimeRemaining->Wrap( -1 );
+ m_staticTextTimeRemaining->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
- ffgSizer112->Add( m_staticTextTimeRemaining, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
+ ffgSizer112->Add( m_staticTextTimeRemaining, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
- bSizer292->Add( ffgSizer112, 0, wxALL, 5 );
+ bSizer292->Add( ffgSizer112, 0, wxALL, 5 );
- m_panelTimeStats->SetSizer( bSizer292 );
- m_panelTimeStats->Layout();
- bSizer292->Fit( m_panelTimeStats );
- bSizer232->Add( m_panelTimeStats, 0, wxTOP|wxBOTTOM|wxRIGHT|wxALIGN_CENTER_VERTICAL, 10 );
+ m_panelTimeStats->SetSizer( bSizer292 );
+ m_panelTimeStats->Layout();
+ bSizer292->Fit( m_panelTimeStats );
+ bSizer232->Add( m_panelTimeStats, 0, wxTOP|wxBOTTOM|wxRIGHT|wxALIGN_CENTER_VERTICAL, 10 );
- bSizer232->Add( 0, 0, 1, 0, 5 );
+ bSizer232->Add( 0, 0, 1, 0, 5 );
- bSizerDynSpace = new wxBoxSizer( wxVERTICAL );
+ bSizerDynSpace = new wxBoxSizer( wxVERTICAL );
- bSizerDynSpace->Add( 0, 0, 0, 0, 5 );
+ bSizerDynSpace->Add( 0, 0, 0, 0, 5 );
- bSizer232->Add( bSizerDynSpace, 0, 0, 5 );
+ bSizer232->Add( bSizerDynSpace, 0, 0, 5 );
- bSizer161->Add( bSizer232, 0, wxEXPAND, 5 );
+ bSizer161->Add( bSizer232, 0, wxEXPAND, 5 );
- m_panelGraphItems = new zen::Graph2D( m_panelProgress, wxID_ANY, wxDefaultPosition, wxSize( -1, -1 ), 0 );
- m_panelGraphItems->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_panelGraphItems = new zen::Graph2D( m_panelProgress, wxID_ANY, wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_panelGraphItems->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- bSizer161->Add( m_panelGraphItems, 1, wxEXPAND|wxLEFT, 10 );
+ bSizer161->Add( m_panelGraphItems, 1, wxEXPAND|wxLEFT, 10 );
- bSizerProgressFooter = new wxBoxSizer( wxHORIZONTAL );
+ bSizerProgressFooter = new wxBoxSizer( wxHORIZONTAL );
- bSizerErrorsRetry = new wxBoxSizer( wxHORIZONTAL );
+ bSizerErrorsRetry = new wxBoxSizer( wxHORIZONTAL );
- m_bitmapRetryErrors = new wxStaticBitmap( m_panelProgress, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizerErrorsRetry->Add( m_bitmapRetryErrors, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ m_bitmapRetryErrors = new wxStaticBitmap( m_panelProgress, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizerErrorsRetry->Add( m_bitmapRetryErrors, 0, wxALIGN_CENTER_VERTICAL, 5 );
- m_staticText1461 = new wxStaticText( m_panelProgress, wxID_ANY, _("Automatic retry"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText1461->Wrap( -1 );
- bSizerErrorsRetry->Add( m_staticText1461, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
+ m_staticText1461 = new wxStaticText( m_panelProgress, wxID_ANY, _("Automatic retry"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText1461->Wrap( -1 );
+ bSizerErrorsRetry->Add( m_staticText1461, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
- m_staticTextRetryCount = new wxStaticText( m_panelProgress, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextRetryCount->Wrap( -1 );
- bSizerErrorsRetry->Add( m_staticTextRetryCount, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+ m_staticTextRetryCount = new wxStaticText( m_panelProgress, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextRetryCount->Wrap( -1 );
+ bSizerErrorsRetry->Add( m_staticTextRetryCount, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
- bSizerProgressFooter->Add( bSizerErrorsRetry, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+ bSizerProgressFooter->Add( bSizerErrorsRetry, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
- bSizerErrorsIgnore = new wxBoxSizer( wxHORIZONTAL );
+ bSizerErrorsIgnore = new wxBoxSizer( wxHORIZONTAL );
- m_bitmapIgnoreErrors = new wxStaticBitmap( m_panelProgress, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizerErrorsIgnore->Add( m_bitmapIgnoreErrors, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ m_bitmapIgnoreErrors = new wxStaticBitmap( m_panelProgress, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizerErrorsIgnore->Add( m_bitmapIgnoreErrors, 0, wxALIGN_CENTER_VERTICAL, 5 );
- m_staticText146 = new wxStaticText( m_panelProgress, wxID_ANY, _("Ignore errors"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText146->Wrap( -1 );
- bSizerErrorsIgnore->Add( m_staticText146, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
+ m_staticText146 = new wxStaticText( m_panelProgress, wxID_ANY, _("Ignore errors"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText146->Wrap( -1 );
+ bSizerErrorsIgnore->Add( m_staticText146, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
- bSizerProgressFooter->Add( bSizerErrorsIgnore, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+ bSizerProgressFooter->Add( bSizerErrorsIgnore, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
- bSizerProgressFooter->Add( 0, 0, 1, wxEXPAND, 5 );
+ bSizerProgressFooter->Add( 0, 0, 1, wxEXPAND, 5 );
- m_staticText137 = new wxStaticText( m_panelProgress, wxID_ANY, _("When finished:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText137->Wrap( -1 );
- bSizerProgressFooter->Add( m_staticText137, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+ m_staticText137 = new wxStaticText( m_panelProgress, wxID_ANY, _("When finished:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText137->Wrap( -1 );
+ bSizerProgressFooter->Add( m_staticText137, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
- wxArrayString m_choicePostSyncActionChoices;
- m_choicePostSyncAction = new wxChoice( m_panelProgress, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choicePostSyncActionChoices, 0 );
- m_choicePostSyncAction->SetSelection( 0 );
- bSizerProgressFooter->Add( m_choicePostSyncAction, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ wxArrayString m_choicePostSyncActionChoices;
+ m_choicePostSyncAction = new wxChoice( m_panelProgress, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choicePostSyncActionChoices, 0 );
+ m_choicePostSyncAction->SetSelection( 0 );
+ bSizerProgressFooter->Add( m_choicePostSyncAction, 0, wxALIGN_CENTER_VERTICAL, 5 );
- bSizer161->Add( bSizerProgressFooter, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 10 );
+ bSizer161->Add( bSizerProgressFooter, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 10 );
- bSizer173->Add( bSizer161, 1, wxEXPAND|wxLEFT, 5 );
+ bSizer173->Add( bSizer161, 1, wxEXPAND|wxLEFT, 5 );
- m_panelProgress->SetSizer( bSizer173 );
- m_panelProgress->Layout();
- bSizer173->Fit( m_panelProgress );
- bSizerRoot->Add( m_panelProgress, 1, wxEXPAND, 5 );
+ m_panelProgress->SetSizer( bSizer173 );
+ m_panelProgress->Layout();
+ bSizer173->Fit( m_panelProgress );
+ bSizerRoot->Add( m_panelProgress, 1, wxEXPAND, 5 );
- m_notebookResult = new wxNotebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxNB_FIXEDWIDTH );
- m_notebookResult->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_notebookResult = new wxNotebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxNB_FIXEDWIDTH );
+ m_notebookResult->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- bSizerRoot->Add( m_notebookResult, 1, wxEXPAND, 5 );
+ bSizerRoot->Add( m_notebookResult, 1, wxEXPAND, 5 );
- m_staticlineFooter = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizerRoot->Add( m_staticlineFooter, 0, wxEXPAND, 5 );
+ m_staticlineFooter = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizerRoot->Add( m_staticlineFooter, 0, wxEXPAND, 5 );
- bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
+ bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
- bSizerStdButtons->Add( 0, 0, 1, wxEXPAND, 5 );
+ bSizerStdButtons->Add( 0, 0, 1, wxEXPAND, 5 );
- m_checkBoxAutoClose = new wxCheckBox( this, wxID_ANY, _("Auto-close"), wxDefaultPosition, wxDefaultSize, 0 );
- bSizerStdButtons->Add( m_checkBoxAutoClose, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 );
+ m_checkBoxAutoClose = new wxCheckBox( this, wxID_ANY, _("Auto-close"), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizerStdButtons->Add( m_checkBoxAutoClose, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 );
- m_buttonClose = new wxButton( this, wxID_OK, _("Close"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
+ m_buttonClose = new wxButton( this, wxID_OK, _("Close"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonClose->SetDefault();
- m_buttonClose->Enable( false );
+ m_buttonClose->SetDefault();
+ m_buttonClose->Enable( false );
- bSizerStdButtons->Add( m_buttonClose, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+ bSizerStdButtons->Add( m_buttonClose, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
- m_buttonPause = new wxButton( this, wxID_ANY, _("&Pause"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
- bSizerStdButtons->Add( m_buttonPause, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+ m_buttonPause = new wxButton( this, wxID_ANY, _("&Pause"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizerStdButtons->Add( m_buttonPause, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
- m_buttonStop = new wxButton( this, wxID_CANCEL, _("Stop"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
- bSizerStdButtons->Add( m_buttonStop, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+ m_buttonStop = new wxButton( this, wxID_CANCEL, _("Stop"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizerStdButtons->Add( m_buttonStop, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
- bSizerRoot->Add( bSizerStdButtons, 0, wxEXPAND, 5 );
+ bSizerRoot->Add( bSizerStdButtons, 0, wxEXPAND, 5 );
- this->SetSizer( bSizerRoot );
- this->Layout();
- bSizerRoot->Fit( this );
+ this->SetSizer( bSizerRoot );
+ this->Layout();
+ bSizerRoot->Fit( this );
}
SyncProgressPanelGenerated::~SyncProgressPanelGenerated()
@@ -3913,42 +3912,42 @@ SyncProgressPanelGenerated::~SyncProgressPanelGenerated()
LogPanelGenerated::LogPanelGenerated( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style, const wxString& name ) : wxPanel( parent, id, pos, size, style, name )
{
- this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- wxBoxSizer* bSizer153;
- bSizer153 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer153;
+ bSizer153 = new wxBoxSizer( wxHORIZONTAL );
- wxBoxSizer* bSizer154;
- bSizer154 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer154;
+ bSizer154 = new wxBoxSizer( wxVERTICAL );
- m_bpButtonErrors = new zen::ToggleButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- bSizer154->Add( m_bpButtonErrors, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
+ m_bpButtonErrors = new zen::ToggleButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ bSizer154->Add( m_bpButtonErrors, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
- m_bpButtonWarnings = new zen::ToggleButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- bSizer154->Add( m_bpButtonWarnings, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
+ m_bpButtonWarnings = new zen::ToggleButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ bSizer154->Add( m_bpButtonWarnings, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
- m_bpButtonInfo = new zen::ToggleButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- bSizer154->Add( m_bpButtonInfo, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
+ m_bpButtonInfo = new zen::ToggleButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ bSizer154->Add( m_bpButtonInfo, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
- bSizer153->Add( bSizer154, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 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_staticline13 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizer153->Add( m_staticline13, 0, wxEXPAND, 5 );
- m_gridMessages = new zen::Grid( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHSCROLL|wxVSCROLL );
- m_gridMessages->SetScrollRate( 5, 5 );
- bSizer153->Add( m_gridMessages, 1, wxEXPAND, 5 );
+ m_gridMessages = new zen::Grid( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHSCROLL|wxVSCROLL );
+ m_gridMessages->SetScrollRate( 5, 5 );
+ bSizer153->Add( m_gridMessages, 1, wxEXPAND, 5 );
- this->SetSizer( bSizer153 );
- this->Layout();
- bSizer153->Fit( this );
+ this->SetSizer( bSizer153 );
+ this->Layout();
+ bSizer153->Fit( this );
- // Connect Events
- m_bpButtonErrors->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( LogPanelGenerated::onErrors ), NULL, this );
- m_bpButtonWarnings->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( LogPanelGenerated::onWarnings ), NULL, this );
- m_bpButtonInfo->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( LogPanelGenerated::onInfo ), NULL, this );
+ // Connect Events
+ m_bpButtonErrors->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( LogPanelGenerated::onErrors ), NULL, this );
+ m_bpButtonWarnings->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( LogPanelGenerated::onWarnings ), NULL, this );
+ m_bpButtonInfo->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( LogPanelGenerated::onInfo ), NULL, this );
}
LogPanelGenerated::~LogPanelGenerated()
@@ -3957,173 +3956,173 @@ LogPanelGenerated::~LogPanelGenerated()
BatchDlgGenerated::BatchDlgGenerated( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
{
- this->SetSizeHints( wxSize( -1, -1 ), wxDefaultSize );
- this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+ this->SetSizeHints( wxSize( -1,-1 ), wxDefaultSize );
+ this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
- wxBoxSizer* bSizer54;
- bSizer54 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer54;
+ bSizer54 = new wxBoxSizer( wxVERTICAL );
- wxBoxSizer* bSizer72;
- bSizer72 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer72;
+ bSizer72 = new wxBoxSizer( wxHORIZONTAL );
- m_bitmapBatchJob = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), 0 );
- bSizer72->Add( m_bitmapBatchJob, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 10 );
+ m_bitmapBatchJob = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizer72->Add( m_bitmapBatchJob, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 10 );
- m_staticTextHeader = new wxStaticText( this, wxID_ANY, _("Create a batch file for unattended synchronization. To start, double-click this file or schedule in a task planner: %x"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextHeader->Wrap( -1 );
- bSizer72->Add( m_staticTextHeader, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 10 );
+ m_staticTextHeader = new wxStaticText( this, wxID_ANY, _("Create a batch file for unattended synchronization. To start, double-click this file or schedule in a task planner: %x"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextHeader->Wrap( -1 );
+ bSizer72->Add( m_staticTextHeader, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 10 );
- bSizer54->Add( bSizer72, 0, 0, 5 );
+ bSizer54->Add( bSizer72, 0, 0, 5 );
- m_staticline18 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer54->Add( m_staticline18, 0, wxEXPAND, 5 );
+ m_staticline18 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer54->Add( m_staticline18, 0, wxEXPAND, 5 );
- m_panel35 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panel35->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_panel35 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panel35->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- wxBoxSizer* bSizer172;
- bSizer172 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer172;
+ bSizer172 = new wxBoxSizer( wxVERTICAL );
- wxBoxSizer* bSizer180;
- bSizer180 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer180;
+ bSizer180 = new wxBoxSizer( wxHORIZONTAL );
- wxBoxSizer* bSizer2361;
- bSizer2361 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer2361;
+ bSizer2361 = new wxBoxSizer( wxVERTICAL );
- m_staticText146 = new wxStaticText( m_panel35, wxID_ANY, _("Progress dialog:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText146->Wrap( -1 );
- bSizer2361->Add( m_staticText146, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
+ m_staticText146 = new wxStaticText( m_panel35, wxID_ANY, _("Progress dialog:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText146->Wrap( -1 );
+ bSizer2361->Add( m_staticText146, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
- ffgSizer11 = new wxFlexGridSizer( 0, 2, 5, 5 );
- ffgSizer11->SetFlexibleDirection( wxBOTH );
- ffgSizer11->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+ ffgSizer11 = new wxFlexGridSizer( 0, 2, 5, 5 );
+ ffgSizer11->SetFlexibleDirection( wxBOTH );
+ ffgSizer11->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
- m_bitmapMinimizeToTray = new wxStaticBitmap( m_panel35, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- ffgSizer11->Add( m_bitmapMinimizeToTray, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ m_bitmapMinimizeToTray = new wxStaticBitmap( m_panel35, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ ffgSizer11->Add( m_bitmapMinimizeToTray, 0, wxALIGN_CENTER_VERTICAL, 5 );
- m_checkBoxRunMinimized = new wxCheckBox( m_panel35, wxID_ANY, _("Run minimized"), wxDefaultPosition, wxDefaultSize, 0 );
- ffgSizer11->Add( m_checkBoxRunMinimized, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
+ m_checkBoxRunMinimized = new wxCheckBox( m_panel35, wxID_ANY, _("Run minimized"), wxDefaultPosition, wxDefaultSize, 0 );
+ ffgSizer11->Add( m_checkBoxRunMinimized, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
- ffgSizer11->Add( 0, 0, 1, wxEXPAND, 5 );
+ ffgSizer11->Add( 0, 0, 1, wxEXPAND, 5 );
- m_checkBoxAutoClose = new wxCheckBox( m_panel35, wxID_ANY, _("Auto-close"), wxDefaultPosition, wxDefaultSize, 0 );
- ffgSizer11->Add( m_checkBoxAutoClose, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+ m_checkBoxAutoClose = new wxCheckBox( m_panel35, wxID_ANY, _("Auto-close"), wxDefaultPosition, wxDefaultSize, 0 );
+ ffgSizer11->Add( m_checkBoxAutoClose, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
- bSizer2361->Add( ffgSizer11, 0, wxEXPAND|wxALL, 5 );
+ bSizer2361->Add( ffgSizer11, 0, wxEXPAND|wxALL, 5 );
- bSizer180->Add( bSizer2361, 0, wxALL, 5 );
+ bSizer180->Add( bSizer2361, 0, wxALL, 5 );
- m_staticline26 = new wxStaticLine( m_panel35, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizer180->Add( m_staticline26, 0, wxEXPAND, 5 );
+ m_staticline26 = new wxStaticLine( m_panel35, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizer180->Add( m_staticline26, 0, wxEXPAND, 5 );
- wxBoxSizer* bSizer242;
- bSizer242 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer242;
+ bSizer242 = new wxBoxSizer( wxVERTICAL );
- wxBoxSizer* bSizer243;
- bSizer243 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer243;
+ bSizer243 = new wxBoxSizer( wxHORIZONTAL );
- m_bitmapIgnoreErrors = new wxStaticBitmap( m_panel35, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer243->Add( m_bitmapIgnoreErrors, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ m_bitmapIgnoreErrors = new wxStaticBitmap( m_panel35, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer243->Add( m_bitmapIgnoreErrors, 0, wxALIGN_CENTER_VERTICAL, 5 );
- m_checkBoxIgnoreErrors = new wxCheckBox( m_panel35, wxID_ANY, _("Ignore errors"), wxDefaultPosition, wxDefaultSize, 0 );
- bSizer243->Add( m_checkBoxIgnoreErrors, 1, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
+ m_checkBoxIgnoreErrors = new wxCheckBox( m_panel35, wxID_ANY, _("Ignore errors"), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer243->Add( m_checkBoxIgnoreErrors, 1, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
- bSizer242->Add( bSizer243, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
+ bSizer242->Add( bSizer243, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
- wxBoxSizer* bSizer246;
- bSizer246 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer246;
+ bSizer246 = new wxBoxSizer( wxVERTICAL );
- m_radioBtnErrorDialogShow = new wxRadioButton( m_panel35, wxID_ANY, _("&Show error message"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
- m_radioBtnErrorDialogShow->SetValue( true );
- m_radioBtnErrorDialogShow->SetToolTip( _("Show pop-up on errors or warnings") );
+ m_radioBtnErrorDialogShow = new wxRadioButton( m_panel35, wxID_ANY, _("&Show error message"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
+ m_radioBtnErrorDialogShow->SetValue( true );
+ m_radioBtnErrorDialogShow->SetToolTip( _("Show pop-up on errors or warnings") );
- bSizer246->Add( m_radioBtnErrorDialogShow, 0, wxALL|wxEXPAND, 5 );
+ bSizer246->Add( m_radioBtnErrorDialogShow, 0, wxALL|wxEXPAND, 5 );
- m_radioBtnErrorDialogCancel = new wxRadioButton( m_panel35, wxID_ANY, _("&Cancel"), wxDefaultPosition, wxDefaultSize, 0 );
- m_radioBtnErrorDialogCancel->SetToolTip( _("Stop synchronization at first error") );
+ m_radioBtnErrorDialogCancel = new wxRadioButton( m_panel35, wxID_ANY, _("&Cancel"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_radioBtnErrorDialogCancel->SetToolTip( _("Stop synchronization at first error") );
- bSizer246->Add( m_radioBtnErrorDialogCancel, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
+ bSizer246->Add( m_radioBtnErrorDialogCancel, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
- bSizer242->Add( bSizer246, 0, wxALIGN_CENTER_HORIZONTAL|wxLEFT, 15 );
+ bSizer242->Add( bSizer246, 0, wxALIGN_CENTER_HORIZONTAL|wxLEFT, 15 );
- bSizer180->Add( bSizer242, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+ bSizer180->Add( bSizer242, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
- m_staticline261 = new wxStaticLine( m_panel35, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizer180->Add( m_staticline261, 0, wxEXPAND, 5 );
+ m_staticline261 = new wxStaticLine( m_panel35, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizer180->Add( m_staticline261, 0, wxEXPAND, 5 );
- wxBoxSizer* bSizer247;
- bSizer247 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer247;
+ bSizer247 = new wxBoxSizer( wxVERTICAL );
- m_staticText137 = new wxStaticText( m_panel35, wxID_ANY, _("When finished:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText137->Wrap( -1 );
- bSizer247->Add( m_staticText137, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
+ m_staticText137 = new wxStaticText( m_panel35, wxID_ANY, _("When finished:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText137->Wrap( -1 );
+ bSizer247->Add( m_staticText137, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
- wxArrayString m_choicePostSyncActionChoices;
- m_choicePostSyncAction = new wxChoice( m_panel35, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choicePostSyncActionChoices, 0 );
- m_choicePostSyncAction->SetSelection( 0 );
- bSizer247->Add( m_choicePostSyncAction, 0, wxALL, 5 );
+ wxArrayString m_choicePostSyncActionChoices;
+ m_choicePostSyncAction = new wxChoice( m_panel35, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choicePostSyncActionChoices, 0 );
+ m_choicePostSyncAction->SetSelection( 0 );
+ bSizer247->Add( m_choicePostSyncAction, 0, wxALL, 5 );
- bSizer180->Add( bSizer247, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+ bSizer180->Add( bSizer247, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
- m_staticline262 = new wxStaticLine( m_panel35, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizer180->Add( m_staticline262, 0, wxEXPAND, 5 );
+ m_staticline262 = new wxStaticLine( m_panel35, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizer180->Add( m_staticline262, 0, wxEXPAND, 5 );
- bSizer172->Add( bSizer180, 0, 0, 5 );
+ bSizer172->Add( bSizer180, 0, 0, 5 );
- m_staticline25 = new wxStaticLine( m_panel35, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer172->Add( m_staticline25, 0, wxEXPAND, 5 );
+ m_staticline25 = new wxStaticLine( m_panel35, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer172->Add( m_staticline25, 0, wxEXPAND, 5 );
- m_hyperlink17 = new wxHyperlinkCtrl( m_panel35, wxID_ANY, _("How can I schedule a batch job?"), wxT("https://freefilesync.org/manual.php?topic=schedule-a-batch-job"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- m_hyperlink17->SetToolTip( _("https://freefilesync.org/manual.php?topic=schedule-a-batch-job") );
+ m_hyperlink17 = new wxHyperlinkCtrl( m_panel35, wxID_ANY, _("How can I schedule a batch job?"), wxT("https://freefilesync.org/manual.php?topic=schedule-a-batch-job"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ m_hyperlink17->SetToolTip( _("https://freefilesync.org/manual.php?topic=schedule-a-batch-job") );
- bSizer172->Add( m_hyperlink17, 0, wxALL, 10 );
+ bSizer172->Add( m_hyperlink17, 0, wxALL, 10 );
- m_panel35->SetSizer( bSizer172 );
- m_panel35->Layout();
- bSizer172->Fit( m_panel35 );
- bSizer54->Add( m_panel35, 1, wxEXPAND, 5 );
+ m_panel35->SetSizer( bSizer172 );
+ m_panel35->Layout();
+ bSizer172->Fit( m_panel35 );
+ bSizer54->Add( m_panel35, 1, wxEXPAND, 5 );
- m_staticline13 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer54->Add( m_staticline13, 0, wxEXPAND, 5 );
+ m_staticline13 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer54->Add( m_staticline13, 0, wxEXPAND, 5 );
- bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
+ bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
- m_buttonSaveAs = new wxButton( this, wxID_SAVE, _("Save &as..."), wxDefaultPosition, wxSize( -1, -1 ), 0 );
+ m_buttonSaveAs = new wxButton( this, wxID_SAVE, _("Save &as..."), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonSaveAs->SetDefault();
- m_buttonSaveAs->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
+ m_buttonSaveAs->SetDefault();
+ m_buttonSaveAs->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
- bSizerStdButtons->Add( m_buttonSaveAs, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+ bSizerStdButtons->Add( m_buttonSaveAs, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
- m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
- bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+ m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
- bSizer54->Add( bSizerStdButtons, 0, wxALIGN_RIGHT, 5 );
+ bSizer54->Add( bSizerStdButtons, 0, wxALIGN_RIGHT, 5 );
- this->SetSizer( bSizer54 );
- this->Layout();
- bSizer54->Fit( this );
+ this->SetSizer( bSizer54 );
+ this->Layout();
+ bSizer54->Fit( this );
- this->Centre( wxBOTH );
+ this->Centre( wxBOTH );
- // Connect Events
- this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( BatchDlgGenerated::onClose ) );
- m_checkBoxRunMinimized->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( BatchDlgGenerated::onToggleRunMinimized ), NULL, this );
- m_checkBoxIgnoreErrors->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( BatchDlgGenerated::onToggleIgnoreErrors ), NULL, this );
- m_buttonSaveAs->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::onSaveBatchJob ), NULL, this );
- m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::onCancel ), NULL, this );
+ // Connect Events
+ this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( BatchDlgGenerated::onClose ) );
+ m_checkBoxRunMinimized->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( BatchDlgGenerated::onToggleRunMinimized ), NULL, this );
+ m_checkBoxIgnoreErrors->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( BatchDlgGenerated::onToggleIgnoreErrors ), NULL, this );
+ m_buttonSaveAs->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::onSaveBatchJob ), NULL, this );
+ m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::onCancel ), NULL, this );
}
BatchDlgGenerated::~BatchDlgGenerated()
@@ -4132,85 +4131,85 @@ BatchDlgGenerated::~BatchDlgGenerated()
DeleteDlgGenerated::DeleteDlgGenerated( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
{
- this->SetSizeHints( wxSize( -1, -1 ), wxDefaultSize );
- this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+ this->SetSizeHints( wxSize( -1,-1 ), wxDefaultSize );
+ this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
- wxBoxSizer* bSizer24;
- bSizer24 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer24;
+ bSizer24 = new wxBoxSizer( wxVERTICAL );
- wxBoxSizer* bSizer72;
- bSizer72 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer72;
+ bSizer72 = new wxBoxSizer( wxHORIZONTAL );
- m_bitmapDeleteType = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer72->Add( m_bitmapDeleteType, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 10 );
+ m_bitmapDeleteType = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer72->Add( m_bitmapDeleteType, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 10 );
- m_staticTextHeader = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextHeader->Wrap( -1 );
- bSizer72->Add( m_staticTextHeader, 0, wxALIGN_CENTER_VERTICAL|wxALL, 10 );
+ m_staticTextHeader = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextHeader->Wrap( -1 );
+ bSizer72->Add( m_staticTextHeader, 0, wxALIGN_CENTER_VERTICAL|wxALL, 10 );
- bSizer24->Add( bSizer72, 0, 0, 5 );
+ bSizer24->Add( bSizer72, 0, 0, 5 );
- m_staticline91 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer24->Add( m_staticline91, 0, wxEXPAND, 5 );
+ m_staticline91 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer24->Add( m_staticline91, 0, wxEXPAND, 5 );
- m_panel31 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panel31->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_panel31 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panel31->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- wxBoxSizer* bSizer185;
- bSizer185 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer185;
+ bSizer185 = new wxBoxSizer( wxHORIZONTAL );
- bSizer185->Add( 60, 0, 0, 0, 5 );
+ bSizer185->Add( 60, 0, 0, 0, 5 );
- m_staticline42 = new wxStaticLine( m_panel31, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizer185->Add( m_staticline42, 0, wxEXPAND, 5 );
+ m_staticline42 = new wxStaticLine( m_panel31, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizer185->Add( m_staticline42, 0, wxEXPAND, 5 );
- m_textCtrlFileList = new wxTextCtrl( m_panel31, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1, -1 ), wxTE_DONTWRAP|wxTE_MULTILINE|wxTE_READONLY|wxBORDER_NONE );
- bSizer185->Add( m_textCtrlFileList, 1, wxEXPAND, 5 );
+ m_textCtrlFileList = new wxTextCtrl( m_panel31, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), wxTE_DONTWRAP|wxTE_MULTILINE|wxTE_READONLY|wxBORDER_NONE );
+ bSizer185->Add( m_textCtrlFileList, 1, wxEXPAND, 5 );
- m_panel31->SetSizer( bSizer185 );
- m_panel31->Layout();
- bSizer185->Fit( m_panel31 );
- bSizer24->Add( m_panel31, 1, wxEXPAND, 5 );
+ m_panel31->SetSizer( bSizer185 );
+ m_panel31->Layout();
+ bSizer185->Fit( m_panel31 );
+ bSizer24->Add( m_panel31, 1, wxEXPAND, 5 );
- m_staticline9 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer24->Add( m_staticline9, 0, wxEXPAND, 5 );
+ m_staticline9 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer24->Add( m_staticline9, 0, wxEXPAND, 5 );
- bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
+ bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
- m_checkBoxUseRecycler = new wxCheckBox( this, wxID_ANY, _("&Recycle bin"), wxDefaultPosition, wxDefaultSize, 0 );
- bSizerStdButtons->Add( m_checkBoxUseRecycler, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+ m_checkBoxUseRecycler = new wxCheckBox( this, wxID_ANY, _("&Recycle bin"), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizerStdButtons->Add( m_checkBoxUseRecycler, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
- bSizerStdButtons->Add( 0, 0, 1, wxEXPAND, 5 );
+ bSizerStdButtons->Add( 0, 0, 1, wxEXPAND, 5 );
- m_buttonOK = new wxButton( this, wxID_OK, _("dummy"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
+ m_buttonOK = new wxButton( this, wxID_OK, _("dummy"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonOK->SetDefault();
- m_buttonOK->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
+ m_buttonOK->SetDefault();
+ m_buttonOK->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
- bSizerStdButtons->Add( m_buttonOK, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+ bSizerStdButtons->Add( m_buttonOK, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
- m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
- bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+ m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
- bSizer24->Add( bSizerStdButtons, 0, wxEXPAND, 5 );
+ bSizer24->Add( bSizerStdButtons, 0, wxEXPAND, 5 );
- this->SetSizer( bSizer24 );
- this->Layout();
- bSizer24->Fit( this );
+ this->SetSizer( bSizer24 );
+ this->Layout();
+ bSizer24->Fit( this );
- this->Centre( wxBOTH );
+ this->Centre( wxBOTH );
- // Connect Events
- this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DeleteDlgGenerated::onClose ) );
- m_checkBoxUseRecycler->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DeleteDlgGenerated::onUseRecycler ), NULL, this );
- m_buttonOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DeleteDlgGenerated::onOkay ), NULL, this );
- m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DeleteDlgGenerated::onCancel ), NULL, this );
+ // Connect Events
+ this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DeleteDlgGenerated::onClose ) );
+ m_checkBoxUseRecycler->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DeleteDlgGenerated::onUseRecycler ), NULL, this );
+ m_buttonOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DeleteDlgGenerated::onOkay ), NULL, this );
+ m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DeleteDlgGenerated::onCancel ), NULL, this );
}
DeleteDlgGenerated::~DeleteDlgGenerated()
@@ -4219,120 +4218,120 @@ DeleteDlgGenerated::~DeleteDlgGenerated()
CopyToDlgGenerated::CopyToDlgGenerated( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
{
- this->SetSizeHints( wxSize( -1, -1 ), wxDefaultSize );
- this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+ this->SetSizeHints( wxSize( -1,-1 ), wxDefaultSize );
+ this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
- wxBoxSizer* bSizer24;
- bSizer24 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer24;
+ bSizer24 = new wxBoxSizer( wxVERTICAL );
- wxBoxSizer* bSizer72;
- bSizer72 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer72;
+ bSizer72 = new wxBoxSizer( wxHORIZONTAL );
- m_bitmapCopyTo = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer72->Add( m_bitmapCopyTo, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 10 );
+ m_bitmapCopyTo = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer72->Add( m_bitmapCopyTo, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 10 );
- m_staticTextHeader = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextHeader->Wrap( -1 );
- bSizer72->Add( m_staticTextHeader, 0, wxALIGN_CENTER_VERTICAL|wxALL, 10 );
+ m_staticTextHeader = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextHeader->Wrap( -1 );
+ bSizer72->Add( m_staticTextHeader, 0, wxALIGN_CENTER_VERTICAL|wxALL, 10 );
- bSizer24->Add( bSizer72, 0, 0, 5 );
+ bSizer24->Add( bSizer72, 0, 0, 5 );
- m_staticline91 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer24->Add( m_staticline91, 0, wxEXPAND, 5 );
+ m_staticline91 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer24->Add( m_staticline91, 0, wxEXPAND, 5 );
- m_panel31 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panel31->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_panel31 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panel31->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- wxBoxSizer* bSizer242;
- bSizer242 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer242;
+ bSizer242 = new wxBoxSizer( wxVERTICAL );
- wxBoxSizer* bSizer185;
- bSizer185 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer185;
+ bSizer185 = new wxBoxSizer( wxHORIZONTAL );
- bSizer185->Add( 60, 0, 0, 0, 5 );
+ bSizer185->Add( 60, 0, 0, 0, 5 );
- m_staticline42 = new wxStaticLine( m_panel31, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizer185->Add( m_staticline42, 0, wxEXPAND, 5 );
+ m_staticline42 = new wxStaticLine( m_panel31, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizer185->Add( m_staticline42, 0, wxEXPAND, 5 );
- m_textCtrlFileList = new wxTextCtrl( m_panel31, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1, -1 ), wxTE_DONTWRAP|wxTE_MULTILINE|wxTE_READONLY|wxBORDER_NONE );
- bSizer185->Add( m_textCtrlFileList, 1, wxEXPAND, 5 );
+ m_textCtrlFileList = new wxTextCtrl( m_panel31, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), wxTE_DONTWRAP|wxTE_MULTILINE|wxTE_READONLY|wxBORDER_NONE );
+ bSizer185->Add( m_textCtrlFileList, 1, wxEXPAND, 5 );
- bSizer242->Add( bSizer185, 1, wxEXPAND, 5 );
+ bSizer242->Add( bSizer185, 1, wxEXPAND, 5 );
- wxBoxSizer* bSizer182;
- bSizer182 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer182;
+ bSizer182 = new wxBoxSizer( wxHORIZONTAL );
- m_targetFolderPath = new fff::FolderHistoryBox( m_panel31, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
- bSizer182->Add( m_targetFolderPath, 1, wxALIGN_CENTER_VERTICAL, 5 );
+ m_targetFolderPath = new fff::FolderHistoryBox( m_panel31, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
+ bSizer182->Add( m_targetFolderPath, 1, wxALIGN_CENTER_VERTICAL, 5 );
- m_buttonSelectTargetFolder = new wxButton( m_panel31, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
- m_buttonSelectTargetFolder->SetToolTip( _("Select a folder") );
+ m_buttonSelectTargetFolder = new wxButton( m_panel31, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_buttonSelectTargetFolder->SetToolTip( _("Select a folder") );
- bSizer182->Add( m_buttonSelectTargetFolder, 0, wxEXPAND, 5 );
+ bSizer182->Add( m_buttonSelectTargetFolder, 0, wxEXPAND, 5 );
- m_bpButtonSelectAltTargetFolder = new wxBitmapButton( m_panel31, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- m_bpButtonSelectAltTargetFolder->SetToolTip( _("Access online storage") );
+ m_bpButtonSelectAltTargetFolder = new wxBitmapButton( m_panel31, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ m_bpButtonSelectAltTargetFolder->SetToolTip( _("Access online storage") );
- bSizer182->Add( m_bpButtonSelectAltTargetFolder, 0, wxEXPAND, 5 );
+ bSizer182->Add( m_bpButtonSelectAltTargetFolder, 0, wxEXPAND, 5 );
- bSizer242->Add( bSizer182, 0, wxALL|wxEXPAND, 10 );
+ bSizer242->Add( bSizer182, 0, wxALL|wxEXPAND, 10 );
- m_panel31->SetSizer( bSizer242 );
- m_panel31->Layout();
- bSizer242->Fit( m_panel31 );
- bSizer24->Add( m_panel31, 1, wxEXPAND, 5 );
+ m_panel31->SetSizer( bSizer242 );
+ m_panel31->Layout();
+ bSizer242->Fit( m_panel31 );
+ bSizer24->Add( m_panel31, 1, wxEXPAND, 5 );
- m_staticline9 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer24->Add( m_staticline9, 0, wxEXPAND, 5 );
+ m_staticline9 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer24->Add( m_staticline9, 0, wxEXPAND, 5 );
- bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
+ bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
- wxBoxSizer* bSizer189;
- bSizer189 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer189;
+ bSizer189 = new wxBoxSizer( wxVERTICAL );
- m_checkBoxKeepRelPath = new wxCheckBox( this, wxID_ANY, _("&Keep relative paths"), wxDefaultPosition, wxDefaultSize, 0 );
- m_checkBoxKeepRelPath->SetValue(true);
- bSizer189->Add( m_checkBoxKeepRelPath, 0, wxALL|wxEXPAND, 5 );
+ m_checkBoxKeepRelPath = new wxCheckBox( this, wxID_ANY, _("&Keep relative paths"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_checkBoxKeepRelPath->SetValue(true);
+ bSizer189->Add( m_checkBoxKeepRelPath, 0, wxALL|wxEXPAND, 5 );
- m_checkBoxOverwriteIfExists = new wxCheckBox( this, wxID_ANY, _("&Overwrite existing files"), wxDefaultPosition, wxDefaultSize, 0 );
- m_checkBoxOverwriteIfExists->SetValue(true);
- bSizer189->Add( m_checkBoxOverwriteIfExists, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
+ m_checkBoxOverwriteIfExists = new wxCheckBox( this, wxID_ANY, _("&Overwrite existing files"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_checkBoxOverwriteIfExists->SetValue(true);
+ bSizer189->Add( m_checkBoxOverwriteIfExists, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
- bSizerStdButtons->Add( bSizer189, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ bSizerStdButtons->Add( bSizer189, 0, wxALIGN_CENTER_VERTICAL, 5 );
- bSizerStdButtons->Add( 0, 0, 1, wxEXPAND, 5 );
+ bSizerStdButtons->Add( 0, 0, 1, wxEXPAND, 5 );
- m_buttonOK = new wxButton( this, wxID_OK, _("Copy"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
+ m_buttonOK = new wxButton( this, wxID_OK, _("Copy"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonOK->SetDefault();
- m_buttonOK->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
+ m_buttonOK->SetDefault();
+ m_buttonOK->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
- bSizerStdButtons->Add( m_buttonOK, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+ bSizerStdButtons->Add( m_buttonOK, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
- m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
- bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+ m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
- bSizer24->Add( bSizerStdButtons, 0, wxEXPAND, 5 );
+ bSizer24->Add( bSizerStdButtons, 0, wxEXPAND, 5 );
- this->SetSizer( bSizer24 );
- this->Layout();
- bSizer24->Fit( this );
+ this->SetSizer( bSizer24 );
+ this->Layout();
+ bSizer24->Fit( this );
- this->Centre( wxBOTH );
+ this->Centre( wxBOTH );
- // Connect Events
- this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( CopyToDlgGenerated::onClose ) );
- m_buttonOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CopyToDlgGenerated::onOkay ), NULL, this );
- m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CopyToDlgGenerated::onCancel ), NULL, this );
+ // Connect Events
+ this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( CopyToDlgGenerated::onClose ) );
+ m_buttonOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CopyToDlgGenerated::onOkay ), NULL, this );
+ m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CopyToDlgGenerated::onCancel ), NULL, this );
}
CopyToDlgGenerated::~CopyToDlgGenerated()
@@ -4341,585 +4340,585 @@ CopyToDlgGenerated::~CopyToDlgGenerated()
OptionsDlgGenerated::OptionsDlgGenerated( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
{
- this->SetSizeHints( wxSize( -1, -1 ), wxDefaultSize );
- this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+ this->SetSizeHints( wxSize( -1,-1 ), wxDefaultSize );
+ this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
- wxBoxSizer* bSizer95;
- bSizer95 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer95;
+ bSizer95 = new wxBoxSizer( wxVERTICAL );
- wxBoxSizer* bSizer72;
- bSizer72 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer72;
+ bSizer72 = new wxBoxSizer( wxHORIZONTAL );
- m_bitmapSettings = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), 0 );
- bSizer72->Add( m_bitmapSettings, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 10 );
+ m_bitmapSettings = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizer72->Add( m_bitmapSettings, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 10 );
- m_staticText44 = new wxStaticText( this, wxID_ANY, _("The following settings are used for all synchronization jobs."), wxDefaultPosition, wxSize( -1, -1 ), 0 );
- m_staticText44->Wrap( -1 );
- bSizer72->Add( m_staticText44, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 10 );
+ m_staticText44 = new wxStaticText( this, wxID_ANY, _("The following settings are used for all synchronization jobs."), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_staticText44->Wrap( -1 );
+ bSizer72->Add( m_staticText44, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 10 );
- bSizer95->Add( bSizer72, 0, 0, 5 );
+ bSizer95->Add( bSizer72, 0, 0, 5 );
- m_staticline20 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer95->Add( m_staticline20, 0, wxEXPAND, 5 );
+ m_staticline20 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer95->Add( m_staticline20, 0, wxEXPAND, 5 );
- m_panel39 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panel39->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_panel39 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panel39->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- wxBoxSizer* bSizer166;
- bSizer166 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer166;
+ bSizer166 = new wxBoxSizer( wxVERTICAL );
- wxBoxSizer* bSizer186;
- bSizer186 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer186;
+ bSizer186 = new wxBoxSizer( wxHORIZONTAL );
- wxBoxSizer* bSizer160;
- bSizer160 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer160;
+ bSizer160 = new wxBoxSizer( wxVERTICAL );
- wxBoxSizer* bSizer176;
- bSizer176 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer176;
+ bSizer176 = new wxBoxSizer( wxHORIZONTAL );
- m_checkBoxFailSafe = new wxCheckBox( m_panel39, wxID_ANY, _("Fail-safe file copy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_checkBoxFailSafe->SetValue(true);
- m_checkBoxFailSafe->SetToolTip( _("Copy to a temporary file (*.ffs_tmp) before overwriting target.\nThis guarantees a consistent state even in case of a serious error.") );
+ m_checkBoxFailSafe = new wxCheckBox( m_panel39, wxID_ANY, _("Fail-safe file copy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_checkBoxFailSafe->SetValue(true);
+ m_checkBoxFailSafe->SetToolTip( _("Copy to a temporary file (*.ffs_tmp) before overwriting target.\nThis guarantees a consistent state even in case of a serious error.") );
- bSizer176->Add( m_checkBoxFailSafe, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+ bSizer176->Add( m_checkBoxFailSafe, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
- m_staticText911 = new wxStaticText( m_panel39, wxID_ANY, _("("), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText911->Wrap( -1 );
- m_staticText911->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+ m_staticText911 = new wxStaticText( m_panel39, wxID_ANY, _("("), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText911->Wrap( -1 );
+ m_staticText911->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
- bSizer176->Add( m_staticText911, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5 );
+ bSizer176->Add( m_staticText911, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5 );
- m_staticText91 = new wxStaticText( m_panel39, wxID_ANY, _("recommended"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText91->Wrap( -1 );
- m_staticText91->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+ m_staticText91 = new wxStaticText( m_panel39, wxID_ANY, _("recommended"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText91->Wrap( -1 );
+ m_staticText91->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
- bSizer176->Add( m_staticText91, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5 );
+ bSizer176->Add( m_staticText91, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5 );
- m_staticText9111 = new wxStaticText( m_panel39, wxID_ANY, _(")"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText9111->Wrap( -1 );
- m_staticText9111->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+ m_staticText9111 = new wxStaticText( m_panel39, wxID_ANY, _(")"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText9111->Wrap( -1 );
+ m_staticText9111->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
- bSizer176->Add( m_staticText9111, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+ bSizer176->Add( m_staticText9111, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
- bSizer160->Add( bSizer176, 0, wxEXPAND, 5 );
+ bSizer160->Add( bSizer176, 0, wxEXPAND, 5 );
- bSizerLockedFiles = new wxBoxSizer( wxHORIZONTAL );
+ bSizerLockedFiles = new wxBoxSizer( wxHORIZONTAL );
- m_checkBoxCopyLocked = new wxCheckBox( m_panel39, wxID_ANY, _("Copy locked files"), wxDefaultPosition, wxDefaultSize, 0 );
- m_checkBoxCopyLocked->SetValue(true);
- m_checkBoxCopyLocked->SetToolTip( _("Copy shared or locked files using the Volume Shadow Copy Service.") );
+ m_checkBoxCopyLocked = new wxCheckBox( m_panel39, wxID_ANY, _("Copy locked files"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_checkBoxCopyLocked->SetValue(true);
+ m_checkBoxCopyLocked->SetToolTip( _("Copy shared or locked files using the Volume Shadow Copy Service.") );
- bSizerLockedFiles->Add( m_checkBoxCopyLocked, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+ bSizerLockedFiles->Add( m_checkBoxCopyLocked, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
- m_staticText921 = new wxStaticText( m_panel39, wxID_ANY, _("("), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText921->Wrap( -1 );
- m_staticText921->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+ m_staticText921 = new wxStaticText( m_panel39, wxID_ANY, _("("), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText921->Wrap( -1 );
+ m_staticText921->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
- bSizerLockedFiles->Add( m_staticText921, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5 );
+ bSizerLockedFiles->Add( m_staticText921, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5 );
- m_staticText92 = new wxStaticText( m_panel39, wxID_ANY, _("requires administrator rights"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText92->Wrap( -1 );
- m_staticText92->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+ m_staticText92 = new wxStaticText( m_panel39, wxID_ANY, _("requires administrator rights"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText92->Wrap( -1 );
+ m_staticText92->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
- bSizerLockedFiles->Add( m_staticText92, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5 );
+ bSizerLockedFiles->Add( m_staticText92, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5 );
- m_staticText922 = new wxStaticText( m_panel39, wxID_ANY, _(")"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText922->Wrap( -1 );
- m_staticText922->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+ m_staticText922 = new wxStaticText( m_panel39, wxID_ANY, _(")"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText922->Wrap( -1 );
+ m_staticText922->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
- bSizerLockedFiles->Add( m_staticText922, 0, wxTOP|wxBOTTOM|wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 );
+ bSizerLockedFiles->Add( m_staticText922, 0, wxTOP|wxBOTTOM|wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 );
- bSizer160->Add( bSizerLockedFiles, 0, wxEXPAND, 5 );
+ bSizer160->Add( bSizerLockedFiles, 0, wxEXPAND, 5 );
- wxBoxSizer* bSizer178;
- bSizer178 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer178;
+ bSizer178 = new wxBoxSizer( wxHORIZONTAL );
- m_checkBoxCopyPermissions = new wxCheckBox( m_panel39, wxID_ANY, _("Copy file access permissions"), wxDefaultPosition, wxDefaultSize, 0 );
- m_checkBoxCopyPermissions->SetValue(true);
- m_checkBoxCopyPermissions->SetToolTip( _("Transfer file and folder permissions.") );
+ m_checkBoxCopyPermissions = new wxCheckBox( m_panel39, wxID_ANY, _("Copy file access permissions"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_checkBoxCopyPermissions->SetValue(true);
+ m_checkBoxCopyPermissions->SetToolTip( _("Transfer file and folder permissions.") );
- bSizer178->Add( m_checkBoxCopyPermissions, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+ bSizer178->Add( m_checkBoxCopyPermissions, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
- m_staticText931 = new wxStaticText( m_panel39, wxID_ANY, _("("), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText931->Wrap( -1 );
- m_staticText931->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+ m_staticText931 = new wxStaticText( m_panel39, wxID_ANY, _("("), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText931->Wrap( -1 );
+ m_staticText931->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
- bSizer178->Add( m_staticText931, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5 );
+ bSizer178->Add( m_staticText931, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5 );
- m_staticText93 = new wxStaticText( m_panel39, wxID_ANY, _("requires administrator rights"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText93->Wrap( -1 );
- m_staticText93->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+ m_staticText93 = new wxStaticText( m_panel39, wxID_ANY, _("requires administrator rights"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText93->Wrap( -1 );
+ m_staticText93->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
- bSizer178->Add( m_staticText93, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5 );
+ bSizer178->Add( m_staticText93, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5 );
- m_staticText932 = new wxStaticText( m_panel39, wxID_ANY, _(")"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText932->Wrap( -1 );
- m_staticText932->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+ m_staticText932 = new wxStaticText( m_panel39, wxID_ANY, _(")"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText932->Wrap( -1 );
+ m_staticText932->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
- bSizer178->Add( m_staticText932, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+ bSizer178->Add( m_staticText932, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
- bSizer160->Add( bSizer178, 0, wxEXPAND, 5 );
+ bSizer160->Add( bSizer178, 0, wxEXPAND, 5 );
- bSizer186->Add( bSizer160, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+ bSizer186->Add( bSizer160, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
- m_staticline39 = new wxStaticLine( m_panel39, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizer186->Add( m_staticline39, 0, wxEXPAND, 5 );
+ m_staticline39 = new wxStaticLine( m_panel39, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizer186->Add( m_staticline39, 0, wxEXPAND, 5 );
- wxBoxSizer* bSizer293;
- bSizer293 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer293;
+ bSizer293 = new wxBoxSizer( wxHORIZONTAL );
- m_bitmapWarnings = new wxStaticBitmap( m_panel39, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer293->Add( m_bitmapWarnings, 0, wxALL, 5 );
+ m_bitmapWarnings = new wxStaticBitmap( m_panel39, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer293->Add( m_bitmapWarnings, 0, wxALL, 5 );
- wxBoxSizer* bSizer1881;
- bSizer1881 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer1881;
+ bSizer1881 = new wxBoxSizer( wxVERTICAL );
- m_staticTextResetDialogs = new wxStaticText( m_panel39, wxID_ANY, _("Show all permanently hidden dialogs and warning messages again"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextResetDialogs->Wrap( -1 );
- m_staticTextResetDialogs->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+ m_staticTextResetDialogs = new wxStaticText( m_panel39, wxID_ANY, _("Show all permanently hidden dialogs and warning messages again"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextResetDialogs->Wrap( -1 );
+ m_staticTextResetDialogs->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
- bSizer1881->Add( m_staticTextResetDialogs, 0, 0, 5 );
+ bSizer1881->Add( m_staticTextResetDialogs, 0, 0, 5 );
- wxBoxSizer* bSizer292;
- bSizer292 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer292;
+ bSizer292 = new wxBoxSizer( wxHORIZONTAL );
- m_buttonRestoreDialogs = new wxButton( m_panel39, wxID_ANY, _("&Restore"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
- bSizer292->Add( m_buttonRestoreDialogs, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ m_buttonRestoreDialogs = new wxButton( m_panel39, wxID_ANY, _("&Restore"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizer292->Add( m_buttonRestoreDialogs, 0, wxALIGN_CENTER_VERTICAL, 5 );
- m_staticTextAllDialogsShown = new wxStaticText( m_panel39, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextAllDialogsShown->Wrap( -1 );
- bSizer292->Add( m_staticTextAllDialogsShown, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
+ m_staticTextAllDialogsShown = new wxStaticText( m_panel39, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextAllDialogsShown->Wrap( -1 );
+ bSizer292->Add( m_staticTextAllDialogsShown, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
- bSizer1881->Add( bSizer292, 0, wxTOP, 5 );
+ bSizer1881->Add( bSizer292, 0, wxTOP, 5 );
- bSizer293->Add( bSizer1881, 0, wxTOP|wxBOTTOM|wxRIGHT, 5 );
+ bSizer293->Add( bSizer1881, 0, wxTOP|wxBOTTOM|wxRIGHT, 5 );
- bSizer186->Add( bSizer293, 0, wxALL, 5 );
+ bSizer186->Add( bSizer293, 0, wxALL, 5 );
- bSizer166->Add( bSizer186, 0, wxEXPAND, 5 );
+ bSizer166->Add( bSizer186, 0, wxEXPAND, 5 );
- m_staticline191 = new wxStaticLine( m_panel39, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer166->Add( m_staticline191, 0, wxEXPAND, 5 );
+ m_staticline191 = new wxStaticLine( m_panel39, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer166->Add( m_staticline191, 0, wxEXPAND, 5 );
- wxBoxSizer* bSizer259;
- bSizer259 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer259;
+ bSizer259 = new wxBoxSizer( wxVERTICAL );
- wxBoxSizer* bSizer258;
- bSizer258 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer258;
+ bSizer258 = new wxBoxSizer( wxHORIZONTAL );
- m_bitmapLogFile = new wxStaticBitmap( m_panel39, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer258->Add( m_bitmapLogFile, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+ m_bitmapLogFile = new wxStaticBitmap( m_panel39, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer258->Add( m_bitmapLogFile, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
- m_staticText163 = new wxStaticText( m_panel39, wxID_ANY, _("Default log path:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText163->Wrap( -1 );
- bSizer258->Add( m_staticText163, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+ m_staticText163 = new wxStaticText( m_panel39, wxID_ANY, _("Default log path:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText163->Wrap( -1 );
+ bSizer258->Add( m_staticText163, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
- m_hyperlinkLogFolder = new wxHyperlinkCtrl( m_panel39, wxID_ANY, _("dummy"), wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHL_ALIGN_CENTRE|wxBORDER_NONE );
- bSizer258->Add( m_hyperlinkLogFolder, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+ m_hyperlinkLogFolder = new wxHyperlinkCtrl( m_panel39, wxID_ANY, _("dummy"), wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHL_ALIGN_CENTRE|wxBORDER_NONE );
+ bSizer258->Add( m_hyperlinkLogFolder, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
- bSizer259->Add( bSizer258, 0, wxALL, 5 );
+ bSizer259->Add( bSizer258, 0, wxALL, 5 );
- wxBoxSizer* bSizer299;
- bSizer299 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer299;
+ bSizer299 = new wxBoxSizer( wxVERTICAL );
- m_staticline83 = new wxStaticLine( m_panel39, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer299->Add( m_staticline83, 0, wxEXPAND, 5 );
+ m_staticline83 = new wxStaticLine( m_panel39, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer299->Add( m_staticline83, 0, wxEXPAND, 5 );
- wxBoxSizer* bSizer297;
- bSizer297 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer297;
+ bSizer297 = new wxBoxSizer( wxHORIZONTAL );
- m_staticline82 = new wxStaticLine( m_panel39, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizer297->Add( m_staticline82, 0, wxEXPAND, 5 );
+ m_staticline82 = new wxStaticLine( m_panel39, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizer297->Add( m_staticline82, 0, wxEXPAND, 5 );
- wxBoxSizer* bSizer282;
- bSizer282 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer282;
+ bSizer282 = new wxBoxSizer( wxHORIZONTAL );
- m_checkBoxLogFilesMaxAge = new wxCheckBox( m_panel39, wxID_ANY, _("&Delete logs after x days:"), wxDefaultPosition, wxDefaultSize, 0 );
- bSizer282->Add( m_checkBoxLogFilesMaxAge, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+ m_checkBoxLogFilesMaxAge = new wxCheckBox( m_panel39, wxID_ANY, _("&Delete logs after x days:"), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer282->Add( m_checkBoxLogFilesMaxAge, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
- m_spinCtrlLogFilesMaxAge = new wxSpinCtrl( m_panel39, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1, -1 ), wxSP_ARROW_KEYS, 1, 2000000000, 1 );
- bSizer282->Add( m_spinCtrlLogFilesMaxAge, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+ m_spinCtrlLogFilesMaxAge = new wxSpinCtrl( m_panel39, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), wxSP_ARROW_KEYS, 1, 2000000000, 1 );
+ bSizer282->Add( m_spinCtrlLogFilesMaxAge, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
- bSizer297->Add( bSizer282, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+ bSizer297->Add( bSizer282, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
- m_staticline81 = new wxStaticLine( m_panel39, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizer297->Add( m_staticline81, 0, wxEXPAND, 5 );
+ m_staticline81 = new wxStaticLine( m_panel39, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizer297->Add( m_staticline81, 0, wxEXPAND, 5 );
- wxBoxSizer* bSizer296;
- bSizer296 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer296;
+ bSizer296 = new wxBoxSizer( wxHORIZONTAL );
- m_staticText184 = new wxStaticText( m_panel39, wxID_ANY, _("Log file format:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText184->Wrap( -1 );
- bSizer296->Add( m_staticText184, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+ m_staticText184 = new wxStaticText( m_panel39, wxID_ANY, _("Log file format:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText184->Wrap( -1 );
+ bSizer296->Add( m_staticText184, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
- wxFlexGridSizer* fgSizer251;
- fgSizer251 = new wxFlexGridSizer( 0, 1, 5, 0 );
- fgSizer251->SetFlexibleDirection( wxBOTH );
- fgSizer251->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+ wxFlexGridSizer* fgSizer251;
+ fgSizer251 = new wxFlexGridSizer( 0, 1, 5, 0 );
+ fgSizer251->SetFlexibleDirection( wxBOTH );
+ fgSizer251->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
- m_radioBtnLogHtml = new wxRadioButton( m_panel39, wxID_ANY, _("&HTML"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
- m_radioBtnLogHtml->SetValue( true );
- fgSizer251->Add( m_radioBtnLogHtml, 0, wxEXPAND, 5 );
+ m_radioBtnLogHtml = new wxRadioButton( m_panel39, wxID_ANY, _("&HTML"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
+ m_radioBtnLogHtml->SetValue( true );
+ fgSizer251->Add( m_radioBtnLogHtml, 0, wxEXPAND, 5 );
- m_radioBtnLogText = new wxRadioButton( m_panel39, wxID_ANY, _("&Plain text"), wxDefaultPosition, wxDefaultSize, 0 );
- fgSizer251->Add( m_radioBtnLogText, 0, wxEXPAND, 5 );
+ m_radioBtnLogText = new wxRadioButton( m_panel39, wxID_ANY, _("&Plain text"), wxDefaultPosition, wxDefaultSize, 0 );
+ fgSizer251->Add( m_radioBtnLogText, 0, wxEXPAND, 5 );
- bSizer296->Add( fgSizer251, 0, wxTOP|wxBOTTOM|wxRIGHT, 5 );
+ bSizer296->Add( fgSizer251, 0, wxTOP|wxBOTTOM|wxRIGHT, 5 );
- bSizer297->Add( bSizer296, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+ bSizer297->Add( bSizer296, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
- bSizer299->Add( bSizer297, 0, 0, 5 );
+ bSizer299->Add( bSizer297, 0, 0, 5 );
- bSizer259->Add( bSizer299, 0, wxALIGN_RIGHT|wxLEFT, 15 );
+ bSizer259->Add( bSizer299, 0, wxALIGN_RIGHT|wxLEFT, 15 );
- bSizer166->Add( bSizer259, 0, wxEXPAND, 5 );
+ bSizer166->Add( bSizer259, 0, wxEXPAND, 5 );
- m_staticline361 = new wxStaticLine( m_panel39, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer166->Add( m_staticline361, 0, wxEXPAND, 5 );
+ m_staticline361 = new wxStaticLine( m_panel39, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer166->Add( m_staticline361, 0, wxEXPAND, 5 );
- wxBoxSizer* bSizer288;
- bSizer288 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer288;
+ bSizer288 = new wxBoxSizer( wxVERTICAL );
- wxBoxSizer* bSizer300;
- bSizer300 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer300;
+ bSizer300 = new wxBoxSizer( wxHORIZONTAL );
- m_bitmapNotificationSounds = new wxStaticBitmap( m_panel39, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer300->Add( m_bitmapNotificationSounds, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ m_bitmapNotificationSounds = new wxStaticBitmap( m_panel39, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer300->Add( m_bitmapNotificationSounds, 0, wxALIGN_CENTER_VERTICAL, 5 );
- m_staticText851 = new wxStaticText( m_panel39, wxID_ANY, _("Notification sounds:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText851->Wrap( -1 );
- bSizer300->Add( m_staticText851, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
+ m_staticText851 = new wxStaticText( m_panel39, wxID_ANY, _("Notification sounds:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText851->Wrap( -1 );
+ bSizer300->Add( m_staticText851, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
- bSizer288->Add( bSizer300, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
+ bSizer288->Add( bSizer300, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
- wxBoxSizer* bSizer301;
- bSizer301 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer301;
+ bSizer301 = new wxBoxSizer( wxHORIZONTAL );
- bSizer301->Add( 15, 0, 0, 0, 5 );
+ bSizer301->Add( 15, 0, 0, 0, 5 );
- ffgSizer11 = new wxFlexGridSizer( 0, 3, 0, 5 );
- ffgSizer11->AddGrowableCol( 2 );
- ffgSizer11->SetFlexibleDirection( wxBOTH );
- ffgSizer11->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+ ffgSizer11 = new wxFlexGridSizer( 0, 3, 0, 5 );
+ ffgSizer11->AddGrowableCol( 2 );
+ ffgSizer11->SetFlexibleDirection( wxBOTH );
+ ffgSizer11->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
- m_bitmapCompareDone = new wxStaticBitmap( m_panel39, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- ffgSizer11->Add( m_bitmapCompareDone, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ m_bitmapCompareDone = new wxStaticBitmap( m_panel39, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ ffgSizer11->Add( m_bitmapCompareDone, 0, wxALIGN_CENTER_VERTICAL, 5 );
- m_staticText171 = new wxStaticText( m_panel39, wxID_ANY, _("Comparison finished:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText171->Wrap( -1 );
- m_staticText171->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+ m_staticText171 = new wxStaticText( m_panel39, wxID_ANY, _("Comparison finished:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText171->Wrap( -1 );
+ m_staticText171->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
- ffgSizer11->Add( m_staticText171, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ ffgSizer11->Add( m_staticText171, 0, wxALIGN_CENTER_VERTICAL, 5 );
- wxBoxSizer* bSizer290;
- bSizer290 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer290;
+ bSizer290 = new wxBoxSizer( wxHORIZONTAL );
- m_bpButtonPlayCompareDone = new wxBitmapButton( m_panel39, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW|0 );
- bSizer290->Add( m_bpButtonPlayCompareDone, 0, wxEXPAND, 5 );
+ m_bpButtonPlayCompareDone = new wxBitmapButton( m_panel39, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW|0 );
+ bSizer290->Add( m_bpButtonPlayCompareDone, 0, wxEXPAND, 5 );
- m_textCtrlSoundPathCompareDone = new wxTextCtrl( m_panel39, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer290->Add( m_textCtrlSoundPathCompareDone, 1, wxALIGN_CENTER_VERTICAL, 5 );
+ m_textCtrlSoundPathCompareDone = new wxTextCtrl( m_panel39, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer290->Add( m_textCtrlSoundPathCompareDone, 1, wxALIGN_CENTER_VERTICAL, 5 );
- m_buttonSelectSoundCompareDone = new wxButton( m_panel39, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
- m_buttonSelectSoundCompareDone->SetToolTip( _("Select a folder") );
+ m_buttonSelectSoundCompareDone = new wxButton( m_panel39, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_buttonSelectSoundCompareDone->SetToolTip( _("Select a folder") );
- bSizer290->Add( m_buttonSelectSoundCompareDone, 0, wxEXPAND, 5 );
+ bSizer290->Add( m_buttonSelectSoundCompareDone, 0, wxEXPAND, 5 );
- ffgSizer11->Add( bSizer290, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+ ffgSizer11->Add( bSizer290, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
- m_bitmapSyncDone = new wxStaticBitmap( m_panel39, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- ffgSizer11->Add( m_bitmapSyncDone, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ m_bitmapSyncDone = new wxStaticBitmap( m_panel39, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ ffgSizer11->Add( m_bitmapSyncDone, 0, wxALIGN_CENTER_VERTICAL, 5 );
- m_staticText1711 = new wxStaticText( m_panel39, wxID_ANY, _("Synchronization finished:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText1711->Wrap( -1 );
- m_staticText1711->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+ m_staticText1711 = new wxStaticText( m_panel39, wxID_ANY, _("Synchronization finished:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText1711->Wrap( -1 );
+ m_staticText1711->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
- ffgSizer11->Add( m_staticText1711, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ ffgSizer11->Add( m_staticText1711, 0, wxALIGN_CENTER_VERTICAL, 5 );
- wxBoxSizer* bSizer2901;
- bSizer2901 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer2901;
+ bSizer2901 = new wxBoxSizer( wxHORIZONTAL );
- m_bpButtonPlaySyncDone = new wxBitmapButton( m_panel39, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW|0 );
- bSizer2901->Add( m_bpButtonPlaySyncDone, 0, wxEXPAND, 5 );
+ m_bpButtonPlaySyncDone = new wxBitmapButton( m_panel39, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW|0 );
+ bSizer2901->Add( m_bpButtonPlaySyncDone, 0, wxEXPAND, 5 );
- m_textCtrlSoundPathSyncDone = new wxTextCtrl( m_panel39, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer2901->Add( m_textCtrlSoundPathSyncDone, 1, wxALIGN_CENTER_VERTICAL, 5 );
+ m_textCtrlSoundPathSyncDone = new wxTextCtrl( m_panel39, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer2901->Add( m_textCtrlSoundPathSyncDone, 1, wxALIGN_CENTER_VERTICAL, 5 );
- m_buttonSelectSoundSyncDone = new wxButton( m_panel39, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
- m_buttonSelectSoundSyncDone->SetToolTip( _("Select a folder") );
+ m_buttonSelectSoundSyncDone = new wxButton( m_panel39, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_buttonSelectSoundSyncDone->SetToolTip( _("Select a folder") );
- bSizer2901->Add( m_buttonSelectSoundSyncDone, 0, wxEXPAND, 5 );
+ bSizer2901->Add( m_buttonSelectSoundSyncDone, 0, wxEXPAND, 5 );
- ffgSizer11->Add( bSizer2901, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+ ffgSizer11->Add( bSizer2901, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
- m_bitmapAlertPending = new wxStaticBitmap( m_panel39, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- ffgSizer11->Add( m_bitmapAlertPending, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ m_bitmapAlertPending = new wxStaticBitmap( m_panel39, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ ffgSizer11->Add( m_bitmapAlertPending, 0, wxALIGN_CENTER_VERTICAL, 5 );
- m_staticText17111 = new wxStaticText( m_panel39, wxID_ANY, _("Alert pending:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText17111->Wrap( -1 );
- m_staticText17111->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+ m_staticText17111 = new wxStaticText( m_panel39, wxID_ANY, _("Unattended error message:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText17111->Wrap( -1 );
+ m_staticText17111->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
- ffgSizer11->Add( m_staticText17111, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ ffgSizer11->Add( m_staticText17111, 0, wxALIGN_CENTER_VERTICAL, 5 );
- wxBoxSizer* bSizer29011;
- bSizer29011 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer29011;
+ bSizer29011 = new wxBoxSizer( wxHORIZONTAL );
- m_bpButtonPlayAlertPending = new wxBitmapButton( m_panel39, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW|0 );
- bSizer29011->Add( m_bpButtonPlayAlertPending, 0, wxEXPAND, 5 );
+ m_bpButtonPlayAlertPending = new wxBitmapButton( m_panel39, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW|0 );
+ bSizer29011->Add( m_bpButtonPlayAlertPending, 0, wxEXPAND, 5 );
- m_textCtrlSoundPathAlertPending = new wxTextCtrl( m_panel39, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer29011->Add( m_textCtrlSoundPathAlertPending, 1, wxALIGN_CENTER_VERTICAL, 5 );
+ m_textCtrlSoundPathAlertPending = new wxTextCtrl( m_panel39, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer29011->Add( m_textCtrlSoundPathAlertPending, 1, wxALIGN_CENTER_VERTICAL, 5 );
- m_buttonSelectSoundAlertPending = new wxButton( m_panel39, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
- m_buttonSelectSoundAlertPending->SetToolTip( _("Select a folder") );
+ m_buttonSelectSoundAlertPending = new wxButton( m_panel39, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_buttonSelectSoundAlertPending->SetToolTip( _("Select a folder") );
- bSizer29011->Add( m_buttonSelectSoundAlertPending, 0, wxEXPAND, 5 );
+ bSizer29011->Add( m_buttonSelectSoundAlertPending, 0, wxEXPAND, 5 );
- ffgSizer11->Add( bSizer29011, 1, wxEXPAND, 5 );
+ ffgSizer11->Add( bSizer29011, 1, wxEXPAND, 5 );
- bSizer301->Add( ffgSizer11, 1, wxALL, 5 );
+ bSizer301->Add( ffgSizer11, 1, wxALL, 5 );
- bSizer288->Add( bSizer301, 0, wxEXPAND, 5 );
+ bSizer288->Add( bSizer301, 0, wxEXPAND, 5 );
- bSizer166->Add( bSizer288, 0, wxEXPAND|wxALL, 5 );
+ bSizer166->Add( bSizer288, 0, wxEXPAND|wxALL, 5 );
- m_staticline3611 = new wxStaticLine( m_panel39, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer166->Add( m_staticline3611, 0, wxEXPAND, 5 );
+ m_staticline3611 = new wxStaticLine( m_panel39, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer166->Add( m_staticline3611, 0, wxEXPAND, 5 );
- wxBoxSizer* bSizer181;
- bSizer181 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer181;
+ bSizer181 = new wxBoxSizer( wxVERTICAL );
- wxBoxSizer* bSizer289;
- bSizer289 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer289;
+ bSizer289 = new wxBoxSizer( wxHORIZONTAL );
- wxBoxSizer* bSizer2991;
- bSizer2991 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer2991;
+ bSizer2991 = new wxBoxSizer( wxVERTICAL );
- wxBoxSizer* bSizer2971;
- bSizer2971 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer2971;
+ bSizer2971 = new wxBoxSizer( wxHORIZONTAL );
- m_bitmapConsole = new wxStaticBitmap( m_panel39, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer2971->Add( m_bitmapConsole, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ m_bitmapConsole = new wxStaticBitmap( m_panel39, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer2971->Add( m_bitmapConsole, 0, wxALIGN_CENTER_VERTICAL, 5 );
- m_staticText85 = new wxStaticText( m_panel39, wxID_ANY, _("Customize context menu:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText85->Wrap( -1 );
- bSizer2971->Add( m_staticText85, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
+ m_staticText85 = new wxStaticText( m_panel39, wxID_ANY, _("Customize context menu:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText85->Wrap( -1 );
+ bSizer2971->Add( m_staticText85, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
- bSizer2991->Add( bSizer2971, 0, 0, 5 );
+ bSizer2991->Add( bSizer2971, 0, 0, 5 );
- bSizer2991->Add( 0, 0, 1, wxEXPAND, 5 );
+ bSizer2991->Add( 0, 0, 1, wxEXPAND, 5 );
- wxBoxSizer* bSizer193;
- bSizer193 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer193;
+ bSizer193 = new wxBoxSizer( wxHORIZONTAL );
- m_bpButtonAddRow = new wxBitmapButton( m_panel39, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- bSizer193->Add( m_bpButtonAddRow, 0, wxALIGN_BOTTOM, 5 );
+ m_bpButtonAddRow = new wxBitmapButton( m_panel39, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ bSizer193->Add( m_bpButtonAddRow, 0, wxALIGN_BOTTOM, 5 );
- m_bpButtonRemoveRow = new wxBitmapButton( m_panel39, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), wxBU_AUTODRAW|0 );
- bSizer193->Add( m_bpButtonRemoveRow, 0, wxALIGN_BOTTOM, 5 );
+ m_bpButtonRemoveRow = new wxBitmapButton( m_panel39, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
+ bSizer193->Add( m_bpButtonRemoveRow, 0, wxALIGN_BOTTOM, 5 );
- bSizer2991->Add( bSizer193, 0, 0, 5 );
+ bSizer2991->Add( bSizer193, 0, 0, 5 );
- bSizer289->Add( bSizer2991, 1, wxEXPAND, 5 );
+ bSizer289->Add( bSizer2991, 1, wxEXPAND, 5 );
- wxFlexGridSizer* fgSizer25;
- fgSizer25 = new wxFlexGridSizer( 0, 2, 0, 10 );
- fgSizer25->SetFlexibleDirection( wxBOTH );
- fgSizer25->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+ wxFlexGridSizer* fgSizer25;
+ fgSizer25 = new wxFlexGridSizer( 0, 2, 0, 10 );
+ fgSizer25->SetFlexibleDirection( wxBOTH );
+ fgSizer25->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
- m_staticText174 = new wxStaticText( m_panel39, wxID_ANY, _("%item_path%"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText174->Wrap( -1 );
- m_staticText174->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_MODERN, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
- m_staticText174->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+ m_staticText174 = new wxStaticText( m_panel39, wxID_ANY, _("%item_path%"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText174->Wrap( -1 );
+ m_staticText174->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_MODERN, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
+ m_staticText174->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
- fgSizer25->Add( m_staticText174, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ fgSizer25->Add( m_staticText174, 0, wxALIGN_CENTER_VERTICAL, 5 );
- m_staticText175 = new wxStaticText( m_panel39, wxID_ANY, _("Full file or folder path"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText175->Wrap( -1 );
- m_staticText175->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+ m_staticText175 = new wxStaticText( m_panel39, wxID_ANY, _("Full file or folder path"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText175->Wrap( -1 );
+ m_staticText175->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
- fgSizer25->Add( m_staticText175, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ fgSizer25->Add( m_staticText175, 0, wxALIGN_CENTER_VERTICAL, 5 );
- m_staticText178 = new wxStaticText( m_panel39, wxID_ANY, _("%local_path%"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText178->Wrap( -1 );
- m_staticText178->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_MODERN, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
- m_staticText178->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+ m_staticText178 = new wxStaticText( m_panel39, wxID_ANY, _("%local_path%"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText178->Wrap( -1 );
+ m_staticText178->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_MODERN, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
+ m_staticText178->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
- fgSizer25->Add( m_staticText178, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ fgSizer25->Add( m_staticText178, 0, wxALIGN_CENTER_VERTICAL, 5 );
- m_staticText179 = new wxStaticText( m_panel39, wxID_ANY, _("Temporary local copy for SFTP and MTP storage"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText179->Wrap( -1 );
- m_staticText179->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+ m_staticText179 = new wxStaticText( m_panel39, wxID_ANY, _("Temporary local copy for SFTP and MTP storage"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText179->Wrap( -1 );
+ m_staticText179->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
- fgSizer25->Add( m_staticText179, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ fgSizer25->Add( m_staticText179, 0, wxALIGN_CENTER_VERTICAL, 5 );
- m_staticText189 = new wxStaticText( m_panel39, wxID_ANY, _("%item_name%"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText189->Wrap( -1 );
- m_staticText189->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_MODERN, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
- m_staticText189->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+ m_staticText189 = new wxStaticText( m_panel39, wxID_ANY, _("%item_name%"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText189->Wrap( -1 );
+ m_staticText189->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_MODERN, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
+ m_staticText189->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
- fgSizer25->Add( m_staticText189, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ fgSizer25->Add( m_staticText189, 0, wxALIGN_CENTER_VERTICAL, 5 );
- m_staticText190 = new wxStaticText( m_panel39, wxID_ANY, _("File or folder name"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText190->Wrap( -1 );
- m_staticText190->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+ m_staticText190 = new wxStaticText( m_panel39, wxID_ANY, _("File or folder name"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText190->Wrap( -1 );
+ m_staticText190->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
- fgSizer25->Add( m_staticText190, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ fgSizer25->Add( m_staticText190, 0, wxALIGN_CENTER_VERTICAL, 5 );
- m_staticText176 = new wxStaticText( m_panel39, wxID_ANY, _("%parent_path%"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText176->Wrap( -1 );
- m_staticText176->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_MODERN, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
- m_staticText176->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+ m_staticText176 = new wxStaticText( m_panel39, wxID_ANY, _("%parent_path%"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText176->Wrap( -1 );
+ m_staticText176->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_MODERN, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
+ m_staticText176->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
- fgSizer25->Add( m_staticText176, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ fgSizer25->Add( m_staticText176, 0, wxALIGN_CENTER_VERTICAL, 5 );
- wxBoxSizer* bSizer298;
- bSizer298 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer298;
+ bSizer298 = new wxBoxSizer( wxHORIZONTAL );
- m_staticText177 = new wxStaticText( m_panel39, wxID_ANY, _("Parent folder path"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText177->Wrap( -1 );
- m_staticText177->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+ m_staticText177 = new wxStaticText( m_panel39, wxID_ANY, _("Parent folder path"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText177->Wrap( -1 );
+ m_staticText177->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
- bSizer298->Add( m_staticText177, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 );
+ bSizer298->Add( m_staticText177, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 );
- bSizer298->Add( 0, 0, 1, 0, 5 );
+ bSizer298->Add( 0, 0, 1, 0, 5 );
- m_hyperlink17 = new wxHyperlinkCtrl( m_panel39, wxID_ANY, _("Show examples"), wxT("https://freefilesync.org/manual.php?topic=external-applications"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- m_hyperlink17->SetToolTip( _("https://freefilesync.org/manual.php?topic=external-applications") );
+ m_hyperlink17 = new wxHyperlinkCtrl( m_panel39, wxID_ANY, _("Show examples"), wxT("https://freefilesync.org/manual.php?topic=external-applications"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ m_hyperlink17->SetToolTip( _("https://freefilesync.org/manual.php?topic=external-applications") );
- bSizer298->Add( m_hyperlink17, 0, wxLEFT|wxALIGN_BOTTOM, 5 );
+ bSizer298->Add( m_hyperlink17, 0, wxLEFT|wxALIGN_BOTTOM, 5 );
- fgSizer25->Add( bSizer298, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+ fgSizer25->Add( bSizer298, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
- fgSizer25->Add( 0, 10, 0, 0, 5 );
+ fgSizer25->Add( 0, 10, 0, 0, 5 );
- fgSizer25->Add( 0, 0, 0, 0, 5 );
+ fgSizer25->Add( 0, 0, 0, 0, 5 );
- bSizer289->Add( fgSizer25, 0, wxLEFT, 5 );
+ bSizer289->Add( fgSizer25, 0, wxLEFT, 5 );
- bSizer181->Add( bSizer289, 0, wxEXPAND, 5 );
+ bSizer181->Add( bSizer289, 0, wxEXPAND, 5 );
- m_gridCustomCommand = new wxGrid( m_panel39, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
+ m_gridCustomCommand = new wxGrid( m_panel39, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
- // Grid
- m_gridCustomCommand->CreateGrid( 3, 2 );
- m_gridCustomCommand->EnableEditing( true );
- m_gridCustomCommand->EnableGridLines( true );
- m_gridCustomCommand->EnableDragGridSize( false );
- m_gridCustomCommand->SetMargins( 0, 0 );
+ // Grid
+ m_gridCustomCommand->CreateGrid( 3, 2 );
+ m_gridCustomCommand->EnableEditing( true );
+ m_gridCustomCommand->EnableGridLines( true );
+ m_gridCustomCommand->EnableDragGridSize( false );
+ m_gridCustomCommand->SetMargins( 0, 0 );
- // Columns
- m_gridCustomCommand->EnableDragColMove( false );
- m_gridCustomCommand->EnableDragColSize( true );
- m_gridCustomCommand->SetColLabelValue( 0, _("Description") );
- m_gridCustomCommand->SetColLabelValue( 1, _("Command line") );
- m_gridCustomCommand->SetColLabelSize( -1 );
- m_gridCustomCommand->SetColLabelAlignment( wxALIGN_CENTER, wxALIGN_CENTER );
+ // Columns
+ m_gridCustomCommand->EnableDragColMove( false );
+ m_gridCustomCommand->EnableDragColSize( true );
+ m_gridCustomCommand->SetColLabelValue( 0, _("Description") );
+ m_gridCustomCommand->SetColLabelValue( 1, _("Command line") );
+ m_gridCustomCommand->SetColLabelSize( -1 );
+ m_gridCustomCommand->SetColLabelAlignment( wxALIGN_CENTER, wxALIGN_CENTER );
- // Rows
- m_gridCustomCommand->EnableDragRowSize( false );
- m_gridCustomCommand->SetRowLabelSize( 1 );
- m_gridCustomCommand->SetRowLabelAlignment( wxALIGN_CENTER, wxALIGN_CENTER );
+ // Rows
+ m_gridCustomCommand->EnableDragRowSize( false );
+ m_gridCustomCommand->SetRowLabelSize( 1 );
+ m_gridCustomCommand->SetRowLabelAlignment( wxALIGN_CENTER, wxALIGN_CENTER );
- // Label Appearance
+ // Label Appearance
- // Cell Defaults
- m_gridCustomCommand->SetDefaultCellAlignment( wxALIGN_LEFT, wxALIGN_TOP );
- bSizer181->Add( m_gridCustomCommand, 1, wxEXPAND, 5 );
+ // Cell Defaults
+ m_gridCustomCommand->SetDefaultCellAlignment( wxALIGN_LEFT, wxALIGN_TOP );
+ bSizer181->Add( m_gridCustomCommand, 1, wxEXPAND, 5 );
- bSizer166->Add( bSizer181, 1, wxEXPAND|wxALL, 10 );
+ bSizer166->Add( bSizer181, 1, wxEXPAND|wxALL, 10 );
- m_panel39->SetSizer( bSizer166 );
- m_panel39->Layout();
- bSizer166->Fit( m_panel39 );
- bSizer95->Add( m_panel39, 1, wxEXPAND, 5 );
+ m_panel39->SetSizer( bSizer166 );
+ m_panel39->Layout();
+ bSizer166->Fit( m_panel39 );
+ bSizer95->Add( m_panel39, 1, wxEXPAND, 5 );
- m_staticline36 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer95->Add( m_staticline36, 0, wxEXPAND, 5 );
+ m_staticline36 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer95->Add( m_staticline36, 0, wxEXPAND, 5 );
- bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
+ bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
- m_buttonDefault = new wxButton( this, wxID_DEFAULT, _("&Default"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
- bSizerStdButtons->Add( m_buttonDefault, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+ m_buttonDefault = new wxButton( this, wxID_DEFAULT, _("&Default"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizerStdButtons->Add( m_buttonDefault, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
- bSizerStdButtons->Add( 0, 0, 1, 0, 5 );
+ bSizerStdButtons->Add( 0, 0, 1, 0, 5 );
- m_buttonOkay = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
+ m_buttonOkay = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonOkay->SetDefault();
- m_buttonOkay->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
+ m_buttonOkay->SetDefault();
+ m_buttonOkay->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
- bSizerStdButtons->Add( m_buttonOkay, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+ bSizerStdButtons->Add( m_buttonOkay, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
- m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
- bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+ m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
- bSizer95->Add( bSizerStdButtons, 0, wxEXPAND, 5 );
+ bSizer95->Add( bSizerStdButtons, 0, wxEXPAND, 5 );
- this->SetSizer( bSizer95 );
- this->Layout();
- bSizer95->Fit( this );
+ this->SetSizer( bSizer95 );
+ this->Layout();
+ bSizer95->Fit( this );
- this->Centre( wxBOTH );
+ this->Centre( wxBOTH );
- // Connect Events
- this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( OptionsDlgGenerated::onClose ) );
- m_buttonRestoreDialogs->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OptionsDlgGenerated::onRestoreDialogs ), NULL, this );
- m_hyperlinkLogFolder->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( OptionsDlgGenerated::onShowLogFolder ), NULL, this );
- m_checkBoxLogFilesMaxAge->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( OptionsDlgGenerated::onToggleLogfilesLimit ), NULL, this );
- m_bpButtonPlayCompareDone->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OptionsDlgGenerated::onPlayCompareDone ), NULL, this );
- m_textCtrlSoundPathCompareDone->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( OptionsDlgGenerated::onChangeSoundFilePath ), NULL, this );
- m_buttonSelectSoundCompareDone->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OptionsDlgGenerated::onSelectSoundCompareDone ), NULL, this );
- m_bpButtonPlaySyncDone->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OptionsDlgGenerated::onPlaySyncDone ), NULL, this );
- m_textCtrlSoundPathSyncDone->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( OptionsDlgGenerated::onChangeSoundFilePath ), NULL, this );
- m_buttonSelectSoundSyncDone->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OptionsDlgGenerated::onSelectSoundSyncDone ), NULL, this );
- m_bpButtonPlayAlertPending->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OptionsDlgGenerated::onPlayAlertPending ), NULL, this );
- m_textCtrlSoundPathAlertPending->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( OptionsDlgGenerated::onChangeSoundFilePath ), NULL, this );
- m_buttonSelectSoundAlertPending->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OptionsDlgGenerated::onSelectSoundAlertPending ), NULL, this );
- m_bpButtonAddRow->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OptionsDlgGenerated::onAddRow ), NULL, this );
- m_bpButtonRemoveRow->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OptionsDlgGenerated::onRemoveRow ), NULL, this );
- m_buttonDefault->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OptionsDlgGenerated::onDefault ), NULL, this );
- m_buttonOkay->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OptionsDlgGenerated::onOkay ), NULL, this );
- m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OptionsDlgGenerated::onCancel ), NULL, this );
+ // Connect Events
+ this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( OptionsDlgGenerated::onClose ) );
+ m_buttonRestoreDialogs->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OptionsDlgGenerated::onRestoreDialogs ), NULL, this );
+ m_hyperlinkLogFolder->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( OptionsDlgGenerated::onShowLogFolder ), NULL, this );
+ m_checkBoxLogFilesMaxAge->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( OptionsDlgGenerated::onToggleLogfilesLimit ), NULL, this );
+ m_bpButtonPlayCompareDone->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OptionsDlgGenerated::onPlayCompareDone ), NULL, this );
+ m_textCtrlSoundPathCompareDone->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( OptionsDlgGenerated::onChangeSoundFilePath ), NULL, this );
+ m_buttonSelectSoundCompareDone->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OptionsDlgGenerated::onSelectSoundCompareDone ), NULL, this );
+ m_bpButtonPlaySyncDone->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OptionsDlgGenerated::onPlaySyncDone ), NULL, this );
+ m_textCtrlSoundPathSyncDone->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( OptionsDlgGenerated::onChangeSoundFilePath ), NULL, this );
+ m_buttonSelectSoundSyncDone->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OptionsDlgGenerated::onSelectSoundSyncDone ), NULL, this );
+ m_bpButtonPlayAlertPending->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OptionsDlgGenerated::onPlayAlertPending ), NULL, this );
+ m_textCtrlSoundPathAlertPending->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( OptionsDlgGenerated::onChangeSoundFilePath ), NULL, this );
+ m_buttonSelectSoundAlertPending->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OptionsDlgGenerated::onSelectSoundAlertPending ), NULL, this );
+ m_bpButtonAddRow->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OptionsDlgGenerated::onAddRow ), NULL, this );
+ m_bpButtonRemoveRow->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OptionsDlgGenerated::onRemoveRow ), NULL, this );
+ m_buttonDefault->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OptionsDlgGenerated::onDefault ), NULL, this );
+ m_buttonOkay->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OptionsDlgGenerated::onOkay ), NULL, this );
+ m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OptionsDlgGenerated::onCancel ), NULL, this );
}
OptionsDlgGenerated::~OptionsDlgGenerated()
@@ -4928,22 +4927,22 @@ OptionsDlgGenerated::~OptionsDlgGenerated()
TooltipDlgGenerated::TooltipDlgGenerated( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
{
- this->SetSizeHints( wxDefaultSize, wxDefaultSize );
+ this->SetSizeHints( wxDefaultSize, wxDefaultSize );
- wxBoxSizer* bSizer158;
- bSizer158 = new wxBoxSizer( wxHORIZONTAL );
+ 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_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 );
+ 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->SetSizer( bSizer158 );
+ this->Layout();
+ bSizer158->Fit( this );
}
TooltipDlgGenerated::~TooltipDlgGenerated()
@@ -4952,61 +4951,61 @@ TooltipDlgGenerated::~TooltipDlgGenerated()
SelectTimespanDlgGenerated::SelectTimespanDlgGenerated( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
{
- this->SetSizeHints( wxDefaultSize, wxDefaultSize );
- this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+ this->SetSizeHints( wxDefaultSize, wxDefaultSize );
+ this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
- wxBoxSizer* bSizer96;
- bSizer96 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer96;
+ bSizer96 = new wxBoxSizer( wxVERTICAL );
- m_panel35 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panel35->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_panel35 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panel35->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- wxBoxSizer* bSizer98;
- bSizer98 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer98;
+ bSizer98 = new wxBoxSizer( wxHORIZONTAL );
- m_calendarFrom = new wxCalendarCtrl( m_panel35, wxID_ANY, wxDefaultDateTime, wxDefaultPosition, wxDefaultSize, wxCAL_SHOW_HOLIDAYS|wxCAL_SHOW_SURROUNDING_WEEKS|wxBORDER_NONE );
- bSizer98->Add( m_calendarFrom, 0, wxTOP|wxBOTTOM|wxLEFT, 10 );
+ m_calendarFrom = new wxCalendarCtrl( m_panel35, wxID_ANY, wxDefaultDateTime, wxDefaultPosition, wxDefaultSize, wxCAL_SHOW_HOLIDAYS|wxCAL_SHOW_SURROUNDING_WEEKS|wxBORDER_NONE );
+ bSizer98->Add( m_calendarFrom, 0, wxTOP|wxBOTTOM|wxLEFT, 10 );
- m_calendarTo = new wxCalendarCtrl( m_panel35, wxID_ANY, wxDefaultDateTime, wxDefaultPosition, wxDefaultSize, wxCAL_SHOW_HOLIDAYS|wxCAL_SHOW_SURROUNDING_WEEKS|wxBORDER_NONE );
- bSizer98->Add( m_calendarTo, 0, wxALL, 10 );
+ m_calendarTo = new wxCalendarCtrl( m_panel35, wxID_ANY, wxDefaultDateTime, wxDefaultPosition, wxDefaultSize, wxCAL_SHOW_HOLIDAYS|wxCAL_SHOW_SURROUNDING_WEEKS|wxBORDER_NONE );
+ bSizer98->Add( m_calendarTo, 0, wxALL, 10 );
- m_panel35->SetSizer( bSizer98 );
- m_panel35->Layout();
- bSizer98->Fit( m_panel35 );
- bSizer96->Add( m_panel35, 0, wxEXPAND, 5 );
+ m_panel35->SetSizer( bSizer98 );
+ m_panel35->Layout();
+ bSizer98->Fit( m_panel35 );
+ bSizer96->Add( m_panel35, 0, wxEXPAND, 5 );
- m_staticline21 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer96->Add( m_staticline21, 0, wxEXPAND, 5 );
+ m_staticline21 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer96->Add( m_staticline21, 0, wxEXPAND, 5 );
- bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
+ bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
- m_buttonOkay = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
+ m_buttonOkay = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonOkay->SetDefault();
- m_buttonOkay->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
+ m_buttonOkay->SetDefault();
+ m_buttonOkay->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
- bSizerStdButtons->Add( m_buttonOkay, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+ bSizerStdButtons->Add( m_buttonOkay, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
- m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
- bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+ m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
- bSizer96->Add( bSizerStdButtons, 0, wxALIGN_RIGHT, 5 );
+ bSizer96->Add( bSizerStdButtons, 0, wxALIGN_RIGHT, 5 );
- this->SetSizer( bSizer96 );
- this->Layout();
- bSizer96->Fit( this );
+ this->SetSizer( bSizer96 );
+ this->Layout();
+ bSizer96->Fit( this );
- this->Centre( wxBOTH );
+ this->Centre( wxBOTH );
- // Connect Events
- this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( SelectTimespanDlgGenerated::onClose ) );
- m_calendarFrom->Connect( wxEVT_CALENDAR_SEL_CHANGED, wxCalendarEventHandler( SelectTimespanDlgGenerated::onChangeSelectionFrom ), NULL, this );
- m_calendarTo->Connect( wxEVT_CALENDAR_SEL_CHANGED, wxCalendarEventHandler( SelectTimespanDlgGenerated::onChangeSelectionTo ), NULL, this );
- m_buttonOkay->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SelectTimespanDlgGenerated::onOkay ), NULL, this );
- m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SelectTimespanDlgGenerated::onCancel ), NULL, this );
+ // Connect Events
+ this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( SelectTimespanDlgGenerated::onClose ) );
+ m_calendarFrom->Connect( wxEVT_CALENDAR_SEL_CHANGED, wxCalendarEventHandler( SelectTimespanDlgGenerated::onChangeSelectionFrom ), NULL, this );
+ m_calendarTo->Connect( wxEVT_CALENDAR_SEL_CHANGED, wxCalendarEventHandler( SelectTimespanDlgGenerated::onChangeSelectionTo ), NULL, this );
+ m_buttonOkay->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SelectTimespanDlgGenerated::onOkay ), NULL, this );
+ m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SelectTimespanDlgGenerated::onCancel ), NULL, this );
}
SelectTimespanDlgGenerated::~SelectTimespanDlgGenerated()
@@ -5015,265 +5014,265 @@ SelectTimespanDlgGenerated::~SelectTimespanDlgGenerated()
AboutDlgGenerated::AboutDlgGenerated( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
{
- this->SetSizeHints( wxDefaultSize, wxDefaultSize );
- this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+ this->SetSizeHints( wxDefaultSize, wxDefaultSize );
+ this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
- wxBoxSizer* bSizer31;
- bSizer31 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer31;
+ bSizer31 = new wxBoxSizer( wxVERTICAL );
- m_panel41 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panel41->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_panel41 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panel41->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- wxBoxSizer* bSizer174;
- bSizer174 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer174;
+ bSizer174 = new wxBoxSizer( wxHORIZONTAL );
- m_bitmapLogoLeft = new wxStaticBitmap( m_panel41, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer174->Add( m_bitmapLogoLeft, 0, wxBOTTOM, 5 );
+ m_bitmapLogoLeft = new wxStaticBitmap( m_panel41, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer174->Add( m_bitmapLogoLeft, 0, wxBOTTOM, 5 );
- m_staticline81 = new wxStaticLine( m_panel41, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizer174->Add( m_staticline81, 0, wxEXPAND, 5 );
+ m_staticline81 = new wxStaticLine( m_panel41, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizer174->Add( m_staticline81, 0, wxEXPAND, 5 );
- bSizerMainSection = new wxBoxSizer( wxVERTICAL );
+ bSizerMainSection = new wxBoxSizer( wxVERTICAL );
- m_staticline82 = new wxStaticLine( m_panel41, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizerMainSection->Add( m_staticline82, 0, wxEXPAND, 5 );
+ m_staticline82 = new wxStaticLine( m_panel41, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizerMainSection->Add( m_staticline82, 0, wxEXPAND, 5 );
- m_bitmapLogo = new wxStaticBitmap( m_panel41, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), 0 );
- bSizerMainSection->Add( m_bitmapLogo, 0, 0, 5 );
+ m_bitmapLogo = new wxStaticBitmap( m_panel41, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizerMainSection->Add( m_bitmapLogo, 0, 0, 5 );
- m_staticline341 = new wxStaticLine( m_panel41, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizerMainSection->Add( m_staticline341, 0, wxEXPAND, 5 );
+ m_staticline341 = new wxStaticLine( m_panel41, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizerMainSection->Add( m_staticline341, 0, wxEXPAND, 5 );
- m_staticTextVersion = new wxStaticText( m_panel41, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextVersion->Wrap( -1 );
- bSizerMainSection->Add( m_staticTextVersion, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
+ m_staticTextVersion = new wxStaticText( m_panel41, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextVersion->Wrap( -1 );
+ bSizerMainSection->Add( m_staticTextVersion, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
- m_staticline3411 = new wxStaticLine( m_panel41, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizerMainSection->Add( m_staticline3411, 0, wxEXPAND, 5 );
+ m_staticline3411 = new wxStaticLine( m_panel41, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizerMainSection->Add( m_staticline3411, 0, wxEXPAND, 5 );
- m_panelDonate = new wxPanel( m_panel41, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panelDonate->SetBackgroundColour( wxColour( 153, 170, 187 ) );
+ m_panelDonate = new wxPanel( m_panel41, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panelDonate->SetBackgroundColour( wxColour( 153, 170, 187 ) );
- wxBoxSizer* bSizer183;
- bSizer183 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer183;
+ bSizer183 = new wxBoxSizer( wxVERTICAL );
- m_panel39 = new wxPanel( m_panelDonate, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panel39->SetBackgroundColour( wxColour( 248, 248, 248 ) );
+ m_panel39 = new wxPanel( m_panelDonate, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panel39->SetBackgroundColour( wxColour( 248, 248, 248 ) );
- wxBoxSizer* bSizer184;
- bSizer184 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer184;
+ bSizer184 = new wxBoxSizer( wxHORIZONTAL );
- bSizer184->Add( 0, 0, 1, wxEXPAND, 5 );
+ bSizer184->Add( 0, 0, 1, wxEXPAND, 5 );
- m_bitmapDonate = new wxStaticBitmap( m_panel39, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer184->Add( m_bitmapDonate, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 );
+ m_bitmapDonate = new wxStaticBitmap( m_panel39, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer184->Add( m_bitmapDonate, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 );
- wxBoxSizer* bSizer178;
- bSizer178 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer178;
+ bSizer178 = new wxBoxSizer( wxVERTICAL );
- m_staticTextDonate = new wxStaticText( m_panel39, wxID_ANY, _("If you like FreeFileSync:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextDonate->Wrap( -1 );
- m_staticTextDonate->SetForegroundColour( wxColour( 0, 0, 0 ) );
+ m_staticTextDonate = new wxStaticText( m_panel39, wxID_ANY, _("If you like FreeFileSync:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextDonate->Wrap( -1 );
+ m_staticTextDonate->SetForegroundColour( wxColour( 0, 0, 0 ) );
- bSizer178->Add( m_staticTextDonate, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 );
+ bSizer178->Add( m_staticTextDonate, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 );
- m_buttonDonate = new wxButton( m_panel39, wxID_ANY, _("Support with a donation"), wxDefaultPosition, wxDefaultSize, 0 );
- m_buttonDonate->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
- m_buttonDonate->SetToolTip( _("https://freefilesync.org/donate") );
+ m_buttonDonate = new wxButton( m_panel39, wxID_ANY, _("Support with a donation"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_buttonDonate->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
+ m_buttonDonate->SetToolTip( _("https://freefilesync.org/donate") );
- bSizer178->Add( m_buttonDonate, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxALIGN_CENTER_HORIZONTAL, 5 );
+ bSizer178->Add( m_buttonDonate, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxALIGN_CENTER_HORIZONTAL, 5 );
- bSizer184->Add( bSizer178, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+ bSizer184->Add( bSizer178, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
- bSizer184->Add( 0, 0, 1, wxEXPAND, 5 );
+ bSizer184->Add( 0, 0, 1, wxEXPAND, 5 );
- m_panel39->SetSizer( bSizer184 );
- m_panel39->Layout();
- bSizer184->Fit( m_panel39 );
- bSizer183->Add( m_panel39, 0, wxALL|wxEXPAND, 5 );
+ m_panel39->SetSizer( bSizer184 );
+ m_panel39->Layout();
+ bSizer184->Fit( m_panel39 );
+ bSizer183->Add( m_panel39, 0, wxALL|wxEXPAND, 5 );
- m_panelDonate->SetSizer( bSizer183 );
- m_panelDonate->Layout();
- bSizer183->Fit( m_panelDonate );
- bSizerMainSection->Add( m_panelDonate, 0, wxEXPAND|wxALL, 10 );
+ m_panelDonate->SetSizer( bSizer183 );
+ m_panelDonate->Layout();
+ bSizer183->Fit( m_panelDonate );
+ bSizerMainSection->Add( m_panelDonate, 0, wxEXPAND|wxALL, 10 );
- m_panelThankYou = new wxPanel( m_panel41, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panelThankYou->SetBackgroundColour( wxColour( 153, 170, 187 ) );
+ m_panelThankYou = new wxPanel( m_panel41, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panelThankYou->SetBackgroundColour( wxColour( 153, 170, 187 ) );
- wxBoxSizer* bSizer1831;
- bSizer1831 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer1831;
+ bSizer1831 = new wxBoxSizer( wxVERTICAL );
- m_panel391 = new wxPanel( m_panelThankYou, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panel391->SetBackgroundColour( wxColour( 248, 248, 248 ) );
+ m_panel391 = new wxPanel( m_panelThankYou, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panel391->SetBackgroundColour( wxColour( 248, 248, 248 ) );
- wxBoxSizer* bSizer243;
- bSizer243 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer243;
+ bSizer243 = new wxBoxSizer( wxVERTICAL );
- wxBoxSizer* bSizer1841;
- bSizer1841 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer1841;
+ bSizer1841 = new wxBoxSizer( wxHORIZONTAL );
- m_bitmapThanks = new wxStaticBitmap( m_panel391, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer1841->Add( m_bitmapThanks, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 );
+ m_bitmapThanks = new wxStaticBitmap( m_panel391, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer1841->Add( m_bitmapThanks, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 );
- m_staticTextThanks = new wxStaticText( m_panel391, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextThanks->Wrap( -1 );
- m_staticTextThanks->SetForegroundColour( wxColour( 0, 0, 0 ) );
+ m_staticTextThanks = new wxStaticText( m_panel391, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextThanks->Wrap( -1 );
+ m_staticTextThanks->SetForegroundColour( wxColour( 0, 0, 0 ) );
- bSizer1841->Add( m_staticTextThanks, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+ bSizer1841->Add( m_staticTextThanks, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
- bSizer243->Add( bSizer1841, 1, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 );
+ bSizer243->Add( bSizer1841, 1, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 );
- m_staticTextNoAutoUpdate = new wxStaticText( m_panel391, wxID_ANY, _("The auto updater was disabled by the administrator."), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextNoAutoUpdate->Wrap( -1 );
- m_staticTextNoAutoUpdate->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
+ m_staticTextNoAutoUpdate = new wxStaticText( m_panel391, wxID_ANY, _("The auto updater was disabled by the administrator."), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextNoAutoUpdate->Wrap( -1 );
+ m_staticTextNoAutoUpdate->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
- bSizer243->Add( m_staticTextNoAutoUpdate, 0, wxALIGN_CENTER_HORIZONTAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+ bSizer243->Add( m_staticTextNoAutoUpdate, 0, wxALIGN_CENTER_HORIZONTAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
- m_buttonShowDonationDetails = new wxButton( m_panel391, wxID_ANY, _("Donation details"), wxDefaultPosition, wxDefaultSize, 0 );
- bSizer243->Add( m_buttonShowDonationDetails, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
+ m_buttonShowDonationDetails = new wxButton( m_panel391, wxID_ANY, _("Donation details"), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer243->Add( m_buttonShowDonationDetails, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
- m_panel391->SetSizer( bSizer243 );
- m_panel391->Layout();
- bSizer243->Fit( m_panel391 );
- bSizer1831->Add( m_panel391, 0, wxEXPAND|wxALL, 5 );
+ m_panel391->SetSizer( bSizer243 );
+ m_panel391->Layout();
+ bSizer243->Fit( m_panel391 );
+ bSizer1831->Add( m_panel391, 0, wxEXPAND|wxALL, 5 );
- m_panelThankYou->SetSizer( bSizer1831 );
- m_panelThankYou->Layout();
- bSizer1831->Fit( m_panelThankYou );
- bSizerMainSection->Add( m_panelThankYou, 0, wxEXPAND|wxALL, 10 );
+ m_panelThankYou->SetSizer( bSizer1831 );
+ m_panelThankYou->Layout();
+ bSizer1831->Fit( m_panelThankYou );
+ bSizerMainSection->Add( m_panelThankYou, 0, wxEXPAND|wxALL, 10 );
- m_staticline3412 = new wxStaticLine( m_panel41, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizerMainSection->Add( m_staticline3412, 0, wxEXPAND, 5 );
+ m_staticline3412 = new wxStaticLine( m_panel41, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizerMainSection->Add( m_staticline3412, 0, wxEXPAND, 5 );
- wxBoxSizer* bSizer186;
- bSizer186 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer186;
+ bSizer186 = new wxBoxSizer( wxVERTICAL );
- m_staticText94 = new wxStaticText( m_panel41, wxID_ANY, _("Feedback and suggestions are welcome:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText94->Wrap( -1 );
- bSizer186->Add( m_staticText94, 0, wxALIGN_CENTER_HORIZONTAL|wxTOP|wxRIGHT|wxLEFT, 5 );
+ m_staticText94 = new wxStaticText( m_panel41, wxID_ANY, _("Feedback and suggestions are welcome:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText94->Wrap( -1 );
+ bSizer186->Add( m_staticText94, 0, wxALIGN_CENTER_HORIZONTAL|wxTOP|wxRIGHT|wxLEFT, 5 );
- wxBoxSizer* bSizer289;
- bSizer289 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer289;
+ bSizer289 = new wxBoxSizer( wxHORIZONTAL );
- m_bpButtonForum = new wxBitmapButton( m_panel41, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW|0 );
- m_bpButtonForum->SetToolTip( _("https://freefilesync.org/forum/") );
+ m_bpButtonForum = new wxBitmapButton( m_panel41, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW|0 );
+ m_bpButtonForum->SetToolTip( _("https://freefilesync.org/forum/") );
- bSizer289->Add( m_bpButtonForum, 0, wxALL|wxEXPAND, 5 );
+ bSizer289->Add( m_bpButtonForum, 0, wxALL|wxEXPAND, 5 );
- wxBoxSizer* bSizer290;
- bSizer290 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer290;
+ bSizer290 = new wxBoxSizer( wxVERTICAL );
- m_bpButtonHomepage = new wxBitmapButton( m_panel41, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW|0 );
- m_bpButtonHomepage->SetToolTip( _("https://freefilesync.org") );
+ m_bpButtonHomepage = new wxBitmapButton( m_panel41, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW|0 );
+ m_bpButtonHomepage->SetToolTip( _("https://freefilesync.org") );
- bSizer290->Add( m_bpButtonHomepage, 1, wxTOP|wxRIGHT|wxEXPAND, 5 );
+ bSizer290->Add( m_bpButtonHomepage, 1, wxTOP|wxRIGHT|wxEXPAND, 5 );
- bSizer290->Add( 0, 5, 0, 0, 5 );
+ bSizer290->Add( 0, 5, 0, 0, 5 );
- m_bpButtonEmail = new wxBitmapButton( m_panel41, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW|0 );
- bSizer290->Add( m_bpButtonEmail, 1, wxEXPAND|wxBOTTOM|wxRIGHT, 5 );
+ m_bpButtonEmail = new wxBitmapButton( m_panel41, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW|0 );
+ bSizer290->Add( m_bpButtonEmail, 1, wxEXPAND|wxBOTTOM|wxRIGHT, 5 );
- bSizer289->Add( bSizer290, 0, wxEXPAND, 5 );
+ bSizer289->Add( bSizer290, 0, wxEXPAND, 5 );
- bSizer186->Add( bSizer289, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
+ bSizer186->Add( bSizer289, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
- bSizerMainSection->Add( bSizer186, 0, wxALL|wxEXPAND, 5 );
+ bSizerMainSection->Add( bSizer186, 0, wxALL|wxEXPAND, 5 );
- m_staticline34 = new wxStaticLine( m_panel41, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizerMainSection->Add( m_staticline34, 0, wxEXPAND, 5 );
+ m_staticline34 = new wxStaticLine( m_panel41, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizerMainSection->Add( m_staticline34, 0, wxEXPAND, 5 );
- wxBoxSizer* bSizer185;
- bSizer185 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer185;
+ bSizer185 = new wxBoxSizer( wxHORIZONTAL );
- m_staticTextGpl = new wxStaticText( m_panel41, wxID_ANY, _("Published under the GNU General Public License:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextGpl->Wrap( -1 );
- bSizer185->Add( m_staticTextGpl, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+ m_staticTextGpl = new wxStaticText( m_panel41, wxID_ANY, _("Published under the GNU General Public License:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextGpl->Wrap( -1 );
+ bSizer185->Add( m_staticTextGpl, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
- m_bpButtonGpl = new wxBitmapButton( m_panel41, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW|0 );
- m_bpButtonGpl->SetToolTip( _("https://www.gnu.org/licenses/gpl-3.0") );
+ m_bpButtonGpl = new wxBitmapButton( m_panel41, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW|0 );
+ m_bpButtonGpl->SetToolTip( _("https://www.gnu.org/licenses/gpl-3.0") );
- bSizer185->Add( m_bpButtonGpl, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+ bSizer185->Add( m_bpButtonGpl, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
- bSizerMainSection->Add( bSizer185, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 );
+ bSizerMainSection->Add( bSizer185, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 );
- bSizer174->Add( bSizerMainSection, 0, 0, 5 );
+ bSizer174->Add( bSizerMainSection, 0, 0, 5 );
- m_staticline37 = new wxStaticLine( m_panel41, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizer174->Add( m_staticline37, 0, wxEXPAND, 5 );
+ m_staticline37 = new wxStaticLine( m_panel41, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizer174->Add( m_staticline37, 0, wxEXPAND, 5 );
- wxBoxSizer* bSizer177;
- bSizer177 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer177;
+ bSizer177 = new wxBoxSizer( wxVERTICAL );
- m_staticTextThanksForLoc = new wxStaticText( m_panel41, wxID_ANY, _("Many thanks for localization:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextThanksForLoc->Wrap( -1 );
- bSizer177->Add( m_staticTextThanksForLoc, 0, wxALL, 5 );
+ m_staticTextThanksForLoc = new wxStaticText( m_panel41, wxID_ANY, _("Many thanks for localization:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextThanksForLoc->Wrap( -1 );
+ bSizer177->Add( m_staticTextThanksForLoc, 0, wxALL, 5 );
- m_scrolledWindowTranslators = new wxScrolledWindow( m_panel41, wxID_ANY, wxDefaultPosition, wxSize( -1, -1 ), wxVSCROLL );
- m_scrolledWindowTranslators->SetScrollRate( 10, 10 );
- m_scrolledWindowTranslators->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_scrolledWindowTranslators = new wxScrolledWindow( m_panel41, wxID_ANY, wxDefaultPosition, wxSize( -1,-1 ), wxVSCROLL );
+ m_scrolledWindowTranslators->SetScrollRate( 10, 10 );
+ m_scrolledWindowTranslators->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- fgSizerTranslators = new wxFlexGridSizer( 0, 2, 2, 10 );
- fgSizerTranslators->SetFlexibleDirection( wxBOTH );
- fgSizerTranslators->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+ fgSizerTranslators = new wxFlexGridSizer( 0, 2, 2, 10 );
+ fgSizerTranslators->SetFlexibleDirection( wxBOTH );
+ fgSizerTranslators->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
- m_scrolledWindowTranslators->SetSizer( fgSizerTranslators );
- m_scrolledWindowTranslators->Layout();
- fgSizerTranslators->Fit( m_scrolledWindowTranslators );
- bSizer177->Add( m_scrolledWindowTranslators, 1, wxEXPAND|wxLEFT, 5 );
+ m_scrolledWindowTranslators->SetSizer( fgSizerTranslators );
+ m_scrolledWindowTranslators->Layout();
+ fgSizerTranslators->Fit( m_scrolledWindowTranslators );
+ bSizer177->Add( m_scrolledWindowTranslators, 1, wxEXPAND|wxLEFT, 5 );
- bSizer174->Add( bSizer177, 0, wxEXPAND|wxLEFT, 5 );
+ bSizer174->Add( bSizer177, 0, wxEXPAND|wxLEFT, 5 );
- m_panel41->SetSizer( bSizer174 );
- m_panel41->Layout();
- bSizer174->Fit( m_panel41 );
- bSizer31->Add( m_panel41, 0, wxEXPAND, 5 );
+ m_panel41->SetSizer( bSizer174 );
+ m_panel41->Layout();
+ bSizer174->Fit( m_panel41 );
+ bSizer31->Add( m_panel41, 0, wxEXPAND, 5 );
- m_staticline36 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer31->Add( m_staticline36, 0, wxEXPAND, 5 );
+ m_staticline36 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer31->Add( m_staticline36, 0, wxEXPAND, 5 );
- bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
+ bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
- m_buttonClose = new wxButton( this, wxID_OK, _("Close"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
+ m_buttonClose = new wxButton( this, wxID_OK, _("Close"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonClose->SetDefault();
- bSizerStdButtons->Add( m_buttonClose, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+ m_buttonClose->SetDefault();
+ bSizerStdButtons->Add( m_buttonClose, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
- bSizer31->Add( bSizerStdButtons, 0, wxALIGN_RIGHT, 5 );
+ bSizer31->Add( bSizerStdButtons, 0, wxALIGN_RIGHT, 5 );
- this->SetSizer( bSizer31 );
- this->Layout();
- bSizer31->Fit( this );
+ this->SetSizer( bSizer31 );
+ this->Layout();
+ bSizer31->Fit( this );
- this->Centre( wxBOTH );
+ this->Centre( wxBOTH );
- // Connect Events
- this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( AboutDlgGenerated::onClose ) );
- m_buttonDonate->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( AboutDlgGenerated::onDonate ), NULL, this );
- m_buttonShowDonationDetails->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( AboutDlgGenerated::onShowDonationDetails ), NULL, this );
- m_bpButtonForum->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( AboutDlgGenerated::onOpenForum ), NULL, this );
- m_bpButtonHomepage->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( AboutDlgGenerated::onOpenHomepage ), NULL, this );
- m_bpButtonEmail->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( AboutDlgGenerated::onSendEmail ), NULL, this );
- m_bpButtonGpl->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( AboutDlgGenerated::onShowGpl ), NULL, this );
- m_buttonClose->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( AboutDlgGenerated::onOkay ), NULL, this );
+ // Connect Events
+ this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( AboutDlgGenerated::onClose ) );
+ m_buttonDonate->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( AboutDlgGenerated::onDonate ), NULL, this );
+ m_buttonShowDonationDetails->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( AboutDlgGenerated::onShowDonationDetails ), NULL, this );
+ m_bpButtonForum->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( AboutDlgGenerated::onOpenForum ), NULL, this );
+ m_bpButtonHomepage->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( AboutDlgGenerated::onOpenHomepage ), NULL, this );
+ m_bpButtonEmail->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( AboutDlgGenerated::onSendEmail ), NULL, this );
+ m_bpButtonGpl->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( AboutDlgGenerated::onShowGpl ), NULL, this );
+ m_buttonClose->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( AboutDlgGenerated::onOkay ), NULL, this );
}
AboutDlgGenerated::~AboutDlgGenerated()
@@ -5282,61 +5281,61 @@ AboutDlgGenerated::~AboutDlgGenerated()
DownloadProgressDlgGenerated::DownloadProgressDlgGenerated( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
{
- this->SetSizeHints( wxDefaultSize, wxDefaultSize );
+ this->SetSizeHints( wxDefaultSize, wxDefaultSize );
- wxBoxSizer* bSizer24;
- bSizer24 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer24;
+ bSizer24 = new wxBoxSizer( wxVERTICAL );
- wxBoxSizer* bSizer72;
- bSizer72 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer72;
+ bSizer72 = new wxBoxSizer( wxHORIZONTAL );
- m_bitmapDownloading = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer72->Add( m_bitmapDownloading, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 10 );
+ m_bitmapDownloading = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer72->Add( m_bitmapDownloading, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 10 );
- m_staticTextHeader = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextHeader->Wrap( -1 );
- bSizer72->Add( m_staticTextHeader, 0, wxALIGN_CENTER_VERTICAL|wxALL, 10 );
+ m_staticTextHeader = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextHeader->Wrap( -1 );
+ bSizer72->Add( m_staticTextHeader, 0, wxALIGN_CENTER_VERTICAL|wxALL, 10 );
- bSizer72->Add( 20, 0, 0, 0, 5 );
+ bSizer72->Add( 20, 0, 0, 0, 5 );
- bSizer24->Add( bSizer72, 0, 0, 5 );
+ bSizer24->Add( bSizer72, 0, 0, 5 );
- wxBoxSizer* bSizer212;
- bSizer212 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer212;
+ bSizer212 = new wxBoxSizer( wxVERTICAL );
- m_gaugeProgress = new wxGauge( this, wxID_ANY, 100, wxDefaultPosition, wxDefaultSize, wxGA_HORIZONTAL );
- m_gaugeProgress->SetValue( 0 );
- bSizer212->Add( m_gaugeProgress, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
+ m_gaugeProgress = new wxGauge( this, wxID_ANY, 100, wxDefaultPosition, wxDefaultSize, wxGA_HORIZONTAL );
+ m_gaugeProgress->SetValue( 0 );
+ bSizer212->Add( m_gaugeProgress, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
- m_staticTextDetails = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextDetails->Wrap( -1 );
- bSizer212->Add( m_staticTextDetails, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
+ m_staticTextDetails = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextDetails->Wrap( -1 );
+ bSizer212->Add( m_staticTextDetails, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
- bSizer24->Add( bSizer212, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+ bSizer24->Add( bSizer212, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
- m_staticline9 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer24->Add( m_staticline9, 0, wxEXPAND, 5 );
+ m_staticline9 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer24->Add( m_staticline9, 0, wxEXPAND, 5 );
- bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
+ bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
- m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
+ m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonCancel->SetDefault();
- bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+ m_buttonCancel->SetDefault();
+ bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
- bSizer24->Add( bSizerStdButtons, 0, wxALIGN_RIGHT, 5 );
+ bSizer24->Add( bSizerStdButtons, 0, wxALIGN_RIGHT, 5 );
- this->SetSizer( bSizer24 );
- this->Layout();
- bSizer24->Fit( this );
+ this->SetSizer( bSizer24 );
+ this->Layout();
+ bSizer24->Fit( this );
- // Connect Events
- m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DownloadProgressDlgGenerated::onCancel ), NULL, this );
+ // Connect Events
+ m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DownloadProgressDlgGenerated::onCancel ), NULL, this );
}
DownloadProgressDlgGenerated::~DownloadProgressDlgGenerated()
@@ -5345,178 +5344,178 @@ DownloadProgressDlgGenerated::~DownloadProgressDlgGenerated()
ActivationDlgGenerated::ActivationDlgGenerated( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
{
- this->SetSizeHints( wxSize( -1, -1 ), wxDefaultSize );
- this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+ this->SetSizeHints( wxSize( -1,-1 ), wxDefaultSize );
+ this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
- wxBoxSizer* bSizer54;
- bSizer54 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer54;
+ bSizer54 = new wxBoxSizer( wxVERTICAL );
- m_panel35 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panel35->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_panel35 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panel35->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- wxBoxSizer* bSizer172;
- bSizer172 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer172;
+ bSizer172 = new wxBoxSizer( wxVERTICAL );
- wxBoxSizer* bSizer165;
- bSizer165 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer165;
+ bSizer165 = new wxBoxSizer( wxHORIZONTAL );
- m_bitmapActivation = new wxStaticBitmap( m_panel35, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), 0 );
- bSizer165->Add( m_bitmapActivation, 0, wxALL, 10 );
+ m_bitmapActivation = new wxStaticBitmap( m_panel35, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizer165->Add( m_bitmapActivation, 0, wxALL, 10 );
- wxBoxSizer* bSizer16;
- bSizer16 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer16;
+ bSizer16 = new wxBoxSizer( wxVERTICAL );
- bSizer16->Add( 0, 10, 0, 0, 5 );
+ bSizer16->Add( 0, 10, 0, 0, 5 );
- m_richTextLastError = new wxRichTextCtrl( m_panel35, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY|wxBORDER_NONE|wxVSCROLL|wxWANTS_CHARS );
- bSizer16->Add( m_richTextLastError, 1, wxEXPAND, 5 );
+ m_richTextLastError = new wxRichTextCtrl( m_panel35, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY|wxBORDER_NONE|wxVSCROLL|wxWANTS_CHARS );
+ bSizer16->Add( m_richTextLastError, 1, wxEXPAND, 5 );
- bSizer165->Add( bSizer16, 1, wxEXPAND, 5 );
+ bSizer165->Add( bSizer16, 1, wxEXPAND, 5 );
- bSizer172->Add( bSizer165, 1, wxEXPAND, 5 );
+ bSizer172->Add( bSizer165, 1, wxEXPAND, 5 );
- m_staticline82 = new wxStaticLine( m_panel35, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer172->Add( m_staticline82, 0, wxEXPAND, 5 );
+ m_staticline82 = new wxStaticLine( m_panel35, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer172->Add( m_staticline82, 0, wxEXPAND, 5 );
- m_staticTextMain = new wxStaticText( m_panel35, wxID_ANY, _("Activate the FreeFileSync Donation Edition by one of the following methods:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextMain->Wrap( -1 );
- bSizer172->Add( m_staticTextMain, 0, wxALL, 10 );
+ m_staticTextMain = new wxStaticText( m_panel35, wxID_ANY, _("Activate the FreeFileSync Donation Edition by one of the following methods:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextMain->Wrap( -1 );
+ bSizer172->Add( m_staticTextMain, 0, wxALL, 10 );
- m_panel35->SetSizer( bSizer172 );
- m_panel35->Layout();
- bSizer172->Fit( m_panel35 );
- bSizer54->Add( m_panel35, 1, wxEXPAND, 5 );
+ m_panel35->SetSizer( bSizer172 );
+ m_panel35->Layout();
+ bSizer172->Fit( m_panel35 );
+ bSizer54->Add( m_panel35, 1, wxEXPAND, 5 );
- m_staticline181 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer54->Add( m_staticline181, 0, wxEXPAND|wxBOTTOM, 5 );
+ m_staticline181 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer54->Add( m_staticline181, 0, wxEXPAND|wxBOTTOM, 5 );
- m_staticline18111 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer54->Add( m_staticline18111, 0, wxEXPAND|wxTOP, 5 );
+ m_staticline18111 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer54->Add( m_staticline18111, 0, wxEXPAND|wxTOP, 5 );
- m_panel3511 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panel3511->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_panel3511 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panel3511->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- wxBoxSizer* bSizer263;
- bSizer263 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer263;
+ bSizer263 = new wxBoxSizer( wxVERTICAL );
- wxBoxSizer* bSizer234;
- bSizer234 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer234;
+ bSizer234 = new wxBoxSizer( wxHORIZONTAL );
- m_staticTextMain1 = new wxStaticText( m_panel3511, wxID_ANY, _("1."), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextMain1->Wrap( -1 );
- bSizer234->Add( m_staticTextMain1, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 );
+ m_staticTextMain1 = new wxStaticText( m_panel3511, wxID_ANY, _("1."), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextMain1->Wrap( -1 );
+ bSizer234->Add( m_staticTextMain1, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 );
- m_staticText136 = new wxStaticText( m_panel3511, wxID_ANY, _("Activate via internet now:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText136->Wrap( -1 );
- bSizer234->Add( m_staticText136, 1, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+ m_staticText136 = new wxStaticText( m_panel3511, wxID_ANY, _("Activate via internet now:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText136->Wrap( -1 );
+ bSizer234->Add( m_staticText136, 1, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
- m_buttonActivateOnline = new wxButton( m_panel3511, wxID_ANY, _("Activate online"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
+ m_buttonActivateOnline = new wxButton( m_panel3511, wxID_ANY, _("Activate online"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonActivateOnline->SetDefault();
- m_buttonActivateOnline->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
+ m_buttonActivateOnline->SetDefault();
+ m_buttonActivateOnline->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
- bSizer234->Add( m_buttonActivateOnline, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ bSizer234->Add( m_buttonActivateOnline, 0, wxALIGN_CENTER_VERTICAL, 5 );
- bSizer263->Add( bSizer234, 0, wxEXPAND|wxALL, 10 );
+ bSizer263->Add( bSizer234, 0, wxEXPAND|wxALL, 10 );
- m_panel3511->SetSizer( bSizer263 );
- m_panel3511->Layout();
- bSizer263->Fit( m_panel3511 );
- bSizer54->Add( m_panel3511, 0, wxEXPAND, 5 );
+ m_panel3511->SetSizer( bSizer263 );
+ m_panel3511->Layout();
+ bSizer263->Fit( m_panel3511 );
+ bSizer54->Add( m_panel3511, 0, wxEXPAND, 5 );
- m_staticline181111 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer54->Add( m_staticline181111, 0, wxEXPAND|wxBOTTOM, 5 );
+ m_staticline181111 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer54->Add( m_staticline181111, 0, wxEXPAND|wxBOTTOM, 5 );
- m_staticline181112 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer54->Add( m_staticline181112, 0, wxEXPAND|wxTOP, 5 );
+ m_staticline181112 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer54->Add( m_staticline181112, 0, wxEXPAND|wxTOP, 5 );
- m_panel351 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panel351->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_panel351 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panel351->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- wxBoxSizer* bSizer266;
- bSizer266 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer266;
+ bSizer266 = new wxBoxSizer( wxVERTICAL );
- wxBoxSizer* bSizer237;
- bSizer237 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer237;
+ bSizer237 = new wxBoxSizer( wxVERTICAL );
- wxBoxSizer* bSizer236;
- bSizer236 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer236;
+ bSizer236 = new wxBoxSizer( wxHORIZONTAL );
- m_staticText175 = new wxStaticText( m_panel351, wxID_ANY, _("2."), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText175->Wrap( -1 );
- bSizer236->Add( m_staticText175, 0, wxRIGHT|wxALIGN_BOTTOM, 5 );
+ m_staticText175 = new wxStaticText( m_panel351, wxID_ANY, _("2."), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText175->Wrap( -1 );
+ bSizer236->Add( m_staticText175, 0, wxRIGHT|wxALIGN_BOTTOM, 5 );
- m_staticText1361 = new wxStaticText( m_panel351, wxID_ANY, _("Retrieve an offline activation key from the following URL:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText1361->Wrap( -1 );
- bSizer236->Add( m_staticText1361, 1, wxRIGHT|wxALIGN_BOTTOM, 5 );
+ m_staticText1361 = new wxStaticText( m_panel351, wxID_ANY, _("Retrieve an offline activation key from the following URL:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText1361->Wrap( -1 );
+ bSizer236->Add( m_staticText1361, 1, wxRIGHT|wxALIGN_BOTTOM, 5 );
- m_buttonCopyUrl = new wxButton( m_panel351, wxID_ANY, _("&Copy to clipboard"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
- bSizer236->Add( m_buttonCopyUrl, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ m_buttonCopyUrl = new wxButton( m_panel351, wxID_ANY, _("&Copy to clipboard"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizer236->Add( m_buttonCopyUrl, 0, wxALIGN_CENTER_VERTICAL, 5 );
- bSizer237->Add( bSizer236, 0, wxEXPAND|wxBOTTOM, 5 );
+ bSizer237->Add( bSizer236, 0, wxEXPAND|wxBOTTOM, 5 );
- m_richTextManualActivationUrl = new wxRichTextCtrl( m_panel351, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY|wxBORDER_NONE|wxVSCROLL|wxWANTS_CHARS );
- bSizer237->Add( m_richTextManualActivationUrl, 0, wxEXPAND|wxBOTTOM, 5 );
+ m_richTextManualActivationUrl = new wxRichTextCtrl( m_panel351, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY|wxBORDER_NONE|wxVSCROLL|wxWANTS_CHARS );
+ bSizer237->Add( m_richTextManualActivationUrl, 0, wxEXPAND|wxBOTTOM, 5 );
- wxBoxSizer* bSizer235;
- bSizer235 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer235;
+ bSizer235 = new wxBoxSizer( wxHORIZONTAL );
- m_staticText13611 = new wxStaticText( m_panel351, wxID_ANY, _("Enter activation key:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText13611->Wrap( -1 );
- bSizer235->Add( m_staticText13611, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+ m_staticText13611 = new wxStaticText( m_panel351, wxID_ANY, _("Enter activation key:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText13611->Wrap( -1 );
+ bSizer235->Add( m_staticText13611, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
- m_textCtrlOfflineActivationKey = new wxTextCtrl( m_panel351, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1, -1 ), wxTE_PROCESS_ENTER );
- bSizer235->Add( m_textCtrlOfflineActivationKey, 1, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+ m_textCtrlOfflineActivationKey = new wxTextCtrl( m_panel351, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), wxTE_PROCESS_ENTER );
+ bSizer235->Add( m_textCtrlOfflineActivationKey, 1, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
- m_buttonActivateOffline = new wxButton( m_panel351, wxID_ANY, _("Activate offline"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
- m_buttonActivateOffline->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
+ m_buttonActivateOffline = new wxButton( m_panel351, wxID_ANY, _("Activate offline"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_buttonActivateOffline->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
- bSizer235->Add( m_buttonActivateOffline, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ bSizer235->Add( m_buttonActivateOffline, 0, wxALIGN_CENTER_VERTICAL, 5 );
- bSizer237->Add( bSizer235, 0, wxEXPAND|wxTOP, 5 );
+ bSizer237->Add( bSizer235, 0, wxEXPAND|wxTOP, 5 );
- bSizer266->Add( bSizer237, 0, wxALL|wxEXPAND, 10 );
+ bSizer266->Add( bSizer237, 0, wxALL|wxEXPAND, 10 );
- m_panel351->SetSizer( bSizer266 );
- m_panel351->Layout();
- bSizer266->Fit( m_panel351 );
- bSizer54->Add( m_panel351, 0, wxEXPAND, 5 );
+ m_panel351->SetSizer( bSizer266 );
+ m_panel351->Layout();
+ bSizer266->Fit( m_panel351 );
+ bSizer54->Add( m_panel351, 0, wxEXPAND, 5 );
- m_staticline13 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer54->Add( m_staticline13, 0, wxEXPAND, 5 );
+ m_staticline13 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer54->Add( m_staticline13, 0, wxEXPAND, 5 );
- bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
+ bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
- m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
- bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+ m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
- bSizer54->Add( bSizerStdButtons, 0, wxALIGN_RIGHT, 5 );
+ bSizer54->Add( bSizerStdButtons, 0, wxALIGN_RIGHT, 5 );
- this->SetSizer( bSizer54 );
- this->Layout();
- bSizer54->Fit( this );
+ this->SetSizer( bSizer54 );
+ this->Layout();
+ bSizer54->Fit( this );
- this->Centre( wxBOTH );
+ this->Centre( wxBOTH );
- // Connect Events
- this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( ActivationDlgGenerated::onClose ) );
- m_buttonActivateOnline->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ActivationDlgGenerated::onActivateOnline ), NULL, this );
- m_buttonCopyUrl->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ActivationDlgGenerated::onCopyUrl ), NULL, this );
- m_textCtrlOfflineActivationKey->Connect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( ActivationDlgGenerated::onOfflineActivationEnter ), NULL, this );
- m_buttonActivateOffline->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ActivationDlgGenerated::onActivateOffline ), NULL, this );
- m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ActivationDlgGenerated::onCancel ), NULL, this );
+ // Connect Events
+ this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( ActivationDlgGenerated::onClose ) );
+ m_buttonActivateOnline->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ActivationDlgGenerated::onActivateOnline ), NULL, this );
+ m_buttonCopyUrl->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ActivationDlgGenerated::onCopyUrl ), NULL, this );
+ m_textCtrlOfflineActivationKey->Connect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( ActivationDlgGenerated::onOfflineActivationEnter ), NULL, this );
+ m_buttonActivateOffline->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ActivationDlgGenerated::onActivateOffline ), NULL, this );
+ m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ActivationDlgGenerated::onCancel ), NULL, this );
}
ActivationDlgGenerated::~ActivationDlgGenerated()
@@ -5525,66 +5524,66 @@ ActivationDlgGenerated::~ActivationDlgGenerated()
CfgHighlightDlgGenerated::CfgHighlightDlgGenerated( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
{
- this->SetSizeHints( wxDefaultSize, wxDefaultSize );
- this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+ this->SetSizeHints( wxDefaultSize, wxDefaultSize );
+ this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
- wxBoxSizer* bSizer96;
- bSizer96 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer96;
+ bSizer96 = new wxBoxSizer( wxVERTICAL );
- m_panel35 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panel35->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_panel35 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panel35->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- wxBoxSizer* bSizer98;
- bSizer98 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer98;
+ bSizer98 = new wxBoxSizer( wxHORIZONTAL );
- wxBoxSizer* bSizer238;
- bSizer238 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer238;
+ bSizer238 = new wxBoxSizer( wxVERTICAL );
- m_staticTextHighlight = new wxStaticText( m_panel35, wxID_ANY, _("Highlight configurations that have not been run for more than the following number of days:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextHighlight->Wrap( -1 );
- bSizer238->Add( m_staticTextHighlight, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
+ m_staticTextHighlight = new wxStaticText( m_panel35, wxID_ANY, _("Highlight configurations that have not been run for more than the following number of days:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextHighlight->Wrap( -1 );
+ bSizer238->Add( m_staticTextHighlight, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
- m_spinCtrlOverdueDays = new wxSpinCtrl( m_panel35, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1, -1 ), wxSP_ARROW_KEYS, 0, 2000000000, 0 );
- bSizer238->Add( m_spinCtrlOverdueDays, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 );
+ m_spinCtrlOverdueDays = new wxSpinCtrl( m_panel35, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), wxSP_ARROW_KEYS, 0, 2000000000, 0 );
+ bSizer238->Add( m_spinCtrlOverdueDays, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 );
- bSizer98->Add( bSizer238, 1, wxALL|wxEXPAND, 5 );
+ bSizer98->Add( bSizer238, 1, wxALL|wxEXPAND, 5 );
- m_panel35->SetSizer( bSizer98 );
- m_panel35->Layout();
- bSizer98->Fit( m_panel35 );
- bSizer96->Add( m_panel35, 0, 0, 5 );
+ m_panel35->SetSizer( bSizer98 );
+ m_panel35->Layout();
+ bSizer98->Fit( m_panel35 );
+ bSizer96->Add( m_panel35, 0, 0, 5 );
- m_staticline21 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer96->Add( m_staticline21, 0, wxEXPAND, 5 );
+ m_staticline21 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer96->Add( m_staticline21, 0, wxEXPAND, 5 );
- bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
+ bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
- m_buttonOkay = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
+ m_buttonOkay = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonOkay->SetDefault();
- m_buttonOkay->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
+ m_buttonOkay->SetDefault();
+ m_buttonOkay->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
- bSizerStdButtons->Add( m_buttonOkay, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+ bSizerStdButtons->Add( m_buttonOkay, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
- m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
- bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+ m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
- bSizer96->Add( bSizerStdButtons, 0, wxALIGN_RIGHT, 5 );
+ bSizer96->Add( bSizerStdButtons, 0, wxALIGN_RIGHT, 5 );
- this->SetSizer( bSizer96 );
- this->Layout();
- bSizer96->Fit( this );
+ this->SetSizer( bSizer96 );
+ this->Layout();
+ bSizer96->Fit( this );
- this->Centre( wxBOTH );
+ this->Centre( wxBOTH );
- // Connect Events
- this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( CfgHighlightDlgGenerated::onClose ) );
- m_buttonOkay->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CfgHighlightDlgGenerated::onOkay ), NULL, this );
- m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CfgHighlightDlgGenerated::onCancel ), NULL, this );
+ // Connect Events
+ this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( CfgHighlightDlgGenerated::onClose ) );
+ m_buttonOkay->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CfgHighlightDlgGenerated::onOkay ), NULL, this );
+ m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CfgHighlightDlgGenerated::onCancel ), NULL, this );
}
CfgHighlightDlgGenerated::~CfgHighlightDlgGenerated()
@@ -5593,106 +5592,106 @@ CfgHighlightDlgGenerated::~CfgHighlightDlgGenerated()
WarnAccessRightsMissingDlgGenerated::WarnAccessRightsMissingDlgGenerated( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
{
- this->SetSizeHints( wxSize( -1, -1 ), wxDefaultSize );
- this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+ this->SetSizeHints( wxSize( -1,-1 ), wxDefaultSize );
+ this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
- wxBoxSizer* bSizer330;
- bSizer330 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer330;
+ bSizer330 = new wxBoxSizer( wxHORIZONTAL );
- m_bitmapGrantAccess = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer330->Add( m_bitmapGrantAccess, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 10 );
+ m_bitmapGrantAccess = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer330->Add( m_bitmapGrantAccess, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 10 );
- wxBoxSizer* bSizer95;
- bSizer95 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer95;
+ bSizer95 = new wxBoxSizer( wxVERTICAL );
- m_staticTextDescr = new wxStaticText( this, wxID_ANY, _("FreeFileSync requires access rights to avoid \"Operation not permitted\" errors when synchronizing your data (e.g. Mail, Messages, Calendars)."), wxDefaultPosition, wxSize( -1, -1 ), 0 );
- m_staticTextDescr->Wrap( -1 );
- bSizer95->Add( m_staticTextDescr, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 10 );
+ m_staticTextDescr = new wxStaticText( this, wxID_ANY, _("FreeFileSync requires access rights to avoid \"Operation not permitted\" errors when synchronizing your data (e.g. Mail, Messages, Calendars)."), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_staticTextDescr->Wrap( -1 );
+ bSizer95->Add( m_staticTextDescr, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 10 );
- m_staticline20 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer95->Add( m_staticline20, 0, wxEXPAND, 5 );
+ m_staticline20 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer95->Add( m_staticline20, 0, wxEXPAND, 5 );
- m_panel39 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panel39->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_panel39 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panel39->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- wxBoxSizer* bSizer166;
- bSizer166 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer166;
+ bSizer166 = new wxBoxSizer( wxVERTICAL );
- ffgSizer11 = new wxFlexGridSizer( 0, 2, 5, 5 );
- ffgSizer11->SetFlexibleDirection( wxBOTH );
- ffgSizer11->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+ ffgSizer11 = new wxFlexGridSizer( 0, 2, 5, 5 );
+ ffgSizer11->SetFlexibleDirection( wxBOTH );
+ ffgSizer11->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
- m_staticTextStep1 = new wxStaticText( m_panel39, wxID_ANY, _("1."), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextStep1->Wrap( -1 );
- ffgSizer11->Add( m_staticTextStep1, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+ m_staticTextStep1 = new wxStaticText( m_panel39, wxID_ANY, _("1."), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextStep1->Wrap( -1 );
+ ffgSizer11->Add( m_staticTextStep1, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
- m_buttonLocateBundle = new wxButton( m_panel39, wxID_ANY, _("Locate the FreeFileSync app"), wxDefaultPosition, wxDefaultSize, 0 );
- ffgSizer11->Add( m_buttonLocateBundle, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+ m_buttonLocateBundle = new wxButton( m_panel39, wxID_ANY, _("Locate the FreeFileSync app"), wxDefaultPosition, wxDefaultSize, 0 );
+ ffgSizer11->Add( m_buttonLocateBundle, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
- m_staticTextStep2 = new wxStaticText( m_panel39, wxID_ANY, _("2."), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextStep2->Wrap( -1 );
- ffgSizer11->Add( m_staticTextStep2, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+ m_staticTextStep2 = new wxStaticText( m_panel39, wxID_ANY, _("2."), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextStep2->Wrap( -1 );
+ ffgSizer11->Add( m_staticTextStep2, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
- m_buttonOpenSecurity = new wxButton( m_panel39, wxID_ANY, _("Open Security && Privacy"), wxDefaultPosition, wxDefaultSize, 0 );
- ffgSizer11->Add( m_buttonOpenSecurity, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+ m_buttonOpenSecurity = new wxButton( m_panel39, wxID_ANY, _("Open Security && Privacy"), wxDefaultPosition, wxDefaultSize, 0 );
+ ffgSizer11->Add( m_buttonOpenSecurity, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
- m_staticTextStep3 = new wxStaticText( m_panel39, wxID_ANY, _("3."), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextStep3->Wrap( -1 );
- ffgSizer11->Add( m_staticTextStep3, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+ m_staticTextStep3 = new wxStaticText( m_panel39, wxID_ANY, _("3."), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextStep3->Wrap( -1 );
+ ffgSizer11->Add( m_staticTextStep3, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
- m_staticTextAllowChanges = new wxStaticText( m_panel39, wxID_ANY, _("Click the lock to allow changes."), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextAllowChanges->Wrap( -1 );
- ffgSizer11->Add( m_staticTextAllowChanges, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ m_staticTextAllowChanges = new wxStaticText( m_panel39, wxID_ANY, _("Click the lock to allow changes."), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextAllowChanges->Wrap( -1 );
+ ffgSizer11->Add( m_staticTextAllowChanges, 0, wxALIGN_CENTER_VERTICAL, 5 );
- m_staticTextStep4 = new wxStaticText( m_panel39, wxID_ANY, _("4."), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextStep4->Wrap( -1 );
- ffgSizer11->Add( m_staticTextStep4, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+ m_staticTextStep4 = new wxStaticText( m_panel39, wxID_ANY, _("4."), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextStep4->Wrap( -1 );
+ ffgSizer11->Add( m_staticTextStep4, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
- m_staticTextGrantAccess = new wxStaticText( m_panel39, wxID_ANY, _("Drag FreeFileSync into the panel."), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextGrantAccess->Wrap( -1 );
- ffgSizer11->Add( m_staticTextGrantAccess, 0, wxALIGN_CENTER_VERTICAL, 5 );
+ m_staticTextGrantAccess = new wxStaticText( m_panel39, wxID_ANY, _("Drag FreeFileSync into the panel."), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextGrantAccess->Wrap( -1 );
+ ffgSizer11->Add( m_staticTextGrantAccess, 0, wxALIGN_CENTER_VERTICAL, 5 );
- bSizer166->Add( ffgSizer11, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 10 );
+ bSizer166->Add( ffgSizer11, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 10 );
- m_panel39->SetSizer( bSizer166 );
- m_panel39->Layout();
- bSizer166->Fit( m_panel39 );
- bSizer95->Add( m_panel39, 1, wxEXPAND, 5 );
+ m_panel39->SetSizer( bSizer166 );
+ m_panel39->Layout();
+ bSizer166->Fit( m_panel39 );
+ bSizer95->Add( m_panel39, 1, wxEXPAND, 5 );
- m_staticline36 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer95->Add( m_staticline36, 0, wxEXPAND, 5 );
+ m_staticline36 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer95->Add( m_staticline36, 0, wxEXPAND, 5 );
- m_checkBoxDontShowAgain = new wxCheckBox( this, wxID_ANY, _("&Don't show this dialog again"), wxDefaultPosition, wxDefaultSize, 0 );
- bSizer95->Add( m_checkBoxDontShowAgain, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
+ m_checkBoxDontShowAgain = new wxCheckBox( this, wxID_ANY, _("&Don't show this dialog again"), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer95->Add( m_checkBoxDontShowAgain, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
- bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
+ bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
- m_buttonClose = new wxButton( this, wxID_OK, _("Close"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
+ m_buttonClose = new wxButton( this, wxID_OK, _("Close"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonClose->SetDefault();
- bSizerStdButtons->Add( m_buttonClose, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+ m_buttonClose->SetDefault();
+ bSizerStdButtons->Add( m_buttonClose, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
- bSizer95->Add( bSizerStdButtons, 0, wxALIGN_RIGHT, 5 );
+ bSizer95->Add( bSizerStdButtons, 0, wxALIGN_RIGHT, 5 );
- bSizer330->Add( bSizer95, 1, wxEXPAND, 5 );
+ bSizer330->Add( bSizer95, 1, wxEXPAND, 5 );
- this->SetSizer( bSizer330 );
- this->Layout();
- bSizer330->Fit( this );
+ this->SetSizer( bSizer330 );
+ this->Layout();
+ bSizer330->Fit( this );
- this->Centre( wxBOTH );
+ this->Centre( wxBOTH );
- // Connect Events
- this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( WarnAccessRightsMissingDlgGenerated::onClose ) );
- m_buttonLocateBundle->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( WarnAccessRightsMissingDlgGenerated::onShowAppBundle ), NULL, this );
- m_buttonOpenSecurity->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( WarnAccessRightsMissingDlgGenerated::onOpenSecuritySettings ), NULL, this );
- m_checkBoxDontShowAgain->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( WarnAccessRightsMissingDlgGenerated::onCheckBoxClick ), NULL, this );
- m_buttonClose->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( WarnAccessRightsMissingDlgGenerated::onOkay ), NULL, this );
+ // Connect Events
+ this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( WarnAccessRightsMissingDlgGenerated::onClose ) );
+ m_buttonLocateBundle->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( WarnAccessRightsMissingDlgGenerated::onShowAppBundle ), NULL, this );
+ m_buttonOpenSecurity->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( WarnAccessRightsMissingDlgGenerated::onOpenSecuritySettings ), NULL, this );
+ m_checkBoxDontShowAgain->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( WarnAccessRightsMissingDlgGenerated::onCheckBoxClick ), NULL, this );
+ m_buttonClose->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( WarnAccessRightsMissingDlgGenerated::onOkay ), NULL, this );
}
WarnAccessRightsMissingDlgGenerated::~WarnAccessRightsMissingDlgGenerated()
diff --git a/FreeFileSync/Source/ui/gui_generated.h b/FreeFileSync/Source/ui/gui_generated.h
index 35a19b5c..ee24fd5e 100644
--- a/FreeFileSync/Source/ui/gui_generated.h
+++ b/FreeFileSync/Source/ui/gui_generated.h
@@ -10,7 +10,7 @@
#include <wx/artprov.h>
#include <wx/xrc/xmlres.h>
#include <wx/intl.h>
-namespace zen { class BitmapTextButton; }
+namespace zen{ class BitmapTextButton; }
#include "wx+/bitmap_button.h"
#include "folder_history_box.h"
@@ -64,227 +64,228 @@ namespace zen { class BitmapTextButton; }
///////////////////////////////////////////////////////////////////////////////
class MainDialogGenerated : public wxFrame
{
-private:
-
-protected:
- wxMenuBar* m_menubar;
- wxMenu* m_menuFile;
- wxMenuItem* m_menuItemNew;
- wxMenuItem* m_menuItemLoad;
- wxMenuItem* m_menuItemSave;
- wxMenuItem* m_menuItemSaveAs;
- wxMenuItem* m_menuItemSaveAsBatch;
- wxMenuItem* m_menuItemQuit;
- wxMenu* m_menuActions;
- wxMenuItem* m_menuItemShowLog;
- wxMenuItem* m_menuItemCompare;
- wxMenuItem* m_menuItemCompSettings;
- wxMenuItem* m_menuItemFilter;
- wxMenuItem* m_menuItemSyncSettings;
- wxMenuItem* m_menuItemSynchronize;
- wxMenu* m_menuTools;
- wxMenuItem* m_menuItemOptions;
- wxMenu* m_menuLanguages;
- wxMenuItem* m_menuItemFind;
- wxMenuItem* m_menuItemExportList;
- wxMenuItem* m_menuItemResetLayout;
- wxMenuItem* m_menuItemShowMain;
- wxMenuItem* m_menuItemShowFolders;
- wxMenuItem* m_menuItemShowViewFilter;
- wxMenuItem* m_menuItemShowConfig;
- wxMenuItem* m_menuItemShowOverview;
- wxMenu* m_menuHelp;
- wxMenuItem* m_menuItemHelp;
- wxMenuItem* m_menuItemCheckVersionNow;
- wxMenuItem* m_menuItemCheckVersionAuto;
- wxMenuItem* m_menuItemAbout;
- wxBoxSizer* bSizerPanelHolder;
- wxPanel* m_panelTopButtons;
- wxBoxSizer* bSizerTopButtons;
- wxBitmapButton* m_bpButtonCmpConfig;
- wxButton* m_buttonCancel;
- zen::BitmapTextButton* m_buttonCompare;
- wxBitmapButton* m_bpButtonCmpContext;
- wxBitmapButton* m_bpButtonFilter;
- wxBitmapButton* m_bpButtonFilterContext;
- wxBitmapButton* m_bpButtonSyncConfig;
- zen::BitmapTextButton* m_buttonSync;
- wxBitmapButton* m_bpButtonSyncContext;
- wxPanel* m_panelDirectoryPairs;
- wxStaticText* m_staticTextResolvedPathL;
- wxBitmapButton* m_bpButtonAddPair;
- wxButton* m_buttonSelectFolderLeft;
- wxPanel* m_panelTopCenter;
- wxBitmapButton* m_bpButtonSwapSides;
- wxStaticText* m_staticTextResolvedPathR;
- wxButton* m_buttonSelectFolderRight;
- wxScrolledWindow* m_scrolledWindowFolderPairs;
- wxBoxSizer* bSizerAddFolderPairs;
- zen::Grid* m_gridOverview;
- wxPanel* m_panelCenter;
- fff::TripleSplitter* m_splitterMain;
- zen::Grid* m_gridMainL;
- zen::Grid* m_gridMainC;
- zen::Grid* m_gridMainR;
- wxPanel* m_panelStatusBar;
- wxBoxSizer* bSizerFileStatus;
- wxBoxSizer* bSizerStatusLeft;
- wxBoxSizer* bSizerStatusLeftDirectories;
- wxStaticBitmap* m_bitmapSmallDirectoryLeft;
- wxStaticText* m_staticTextStatusLeftDirs;
- wxBoxSizer* bSizerStatusLeftFiles;
- wxStaticBitmap* m_bitmapSmallFileLeft;
- wxStaticText* m_staticTextStatusLeftFiles;
- wxStaticText* m_staticTextStatusLeftBytes;
- wxStaticLine* m_staticline9;
- wxStaticText* m_staticTextStatusCenter;
- wxBoxSizer* bSizerStatusRight;
- wxStaticLine* m_staticline10;
- wxBoxSizer* bSizerStatusRightDirectories;
- wxStaticBitmap* m_bitmapSmallDirectoryRight;
- wxStaticText* m_staticTextStatusRightDirs;
- wxBoxSizer* bSizerStatusRightFiles;
- wxStaticBitmap* m_bitmapSmallFileRight;
- wxStaticText* m_staticTextStatusRightFiles;
- wxStaticText* m_staticTextStatusRightBytes;
- wxStaticText* m_staticTextFullStatus;
- wxPanel* m_panelSearch;
- wxBitmapButton* m_bpButtonHideSearch;
- wxStaticText* m_staticText101;
- wxTextCtrl* m_textCtrlSearchTxt;
- wxCheckBox* m_checkBoxMatchCase;
- wxPanel* m_panelLog;
- wxBoxSizer* bSizerLog;
- wxBoxSizer* bSizer42;
- wxFlexGridSizer* ffgSizer11;
- wxFlexGridSizer* ffgSizer111;
- wxFlexGridSizer* ffgSizer112;
- wxStaticLine* m_staticline70;
- wxPanel* m_panelConfig;
- wxBoxSizer* bSizerConfig;
- wxBoxSizer* bSizerCfgHistoryButtons;
- wxBitmapButton* m_bpButtonNew;
- wxStaticText* m_staticText951;
- wxBitmapButton* m_bpButtonOpen;
- wxStaticText* m_staticText95;
- wxBitmapButton* m_bpButtonSave;
- wxStaticText* m_staticText961;
- wxBitmapButton* m_bpButtonSaveAs;
- wxBitmapButton* m_bpButtonSaveAsBatch;
- wxStaticText* m_staticText97;
- wxStaticLine* m_staticline81;
- zen::Grid* m_gridCfgHistory;
- wxPanel* m_panelViewFilter;
- wxBoxSizer* bSizerViewFilter;
- wxBitmapButton* m_bpButtonToggleLog;
- zen::ToggleButton* m_bpButtonViewType;
- zen::ToggleButton* m_bpButtonShowExcluded;
- zen::ToggleButton* m_bpButtonShowDeleteLeft;
- zen::ToggleButton* m_bpButtonShowUpdateLeft;
- zen::ToggleButton* m_bpButtonShowCreateLeft;
- zen::ToggleButton* m_bpButtonShowLeftOnly;
- zen::ToggleButton* m_bpButtonShowLeftNewer;
- zen::ToggleButton* m_bpButtonShowEqual;
- zen::ToggleButton* m_bpButtonShowDoNothing;
- zen::ToggleButton* m_bpButtonShowDifferent;
- zen::ToggleButton* m_bpButtonShowRightNewer;
- zen::ToggleButton* m_bpButtonShowRightOnly;
- zen::ToggleButton* m_bpButtonShowCreateRight;
- zen::ToggleButton* m_bpButtonShowUpdateRight;
- zen::ToggleButton* m_bpButtonShowDeleteRight;
- zen::ToggleButton* m_bpButtonShowConflict;
- wxBitmapButton* m_bpButtonViewFilterContext;
- wxStaticText* m_staticText96;
- wxPanel* m_panelStatistics;
- wxBoxSizer* bSizer1801;
- wxStaticBitmap* m_bitmapDeleteLeft;
- wxStaticText* m_staticTextDeleteLeft;
- wxStaticBitmap* m_bitmapUpdateLeft;
- wxStaticText* m_staticTextUpdateLeft;
- wxStaticBitmap* m_bitmapCreateLeft;
- wxStaticText* m_staticTextCreateLeft;
- wxStaticBitmap* m_bitmapData;
- wxStaticText* m_staticTextData;
- wxStaticBitmap* m_bitmapCreateRight;
- wxStaticText* m_staticTextCreateRight;
- wxStaticBitmap* m_bitmapUpdateRight;
- wxStaticText* m_staticTextUpdateRight;
- wxStaticBitmap* m_bitmapDeleteRight;
- wxStaticText* m_staticTextDeleteRight;
-
- // Virtual event handlers, override them in your derived class
- virtual void onClose( wxCloseEvent& event ) { event.Skip(); }
- virtual void onConfigNew( wxCommandEvent& event ) { event.Skip(); }
- virtual void onConfigLoad( wxCommandEvent& event ) { event.Skip(); }
- virtual void onConfigSave( wxCommandEvent& event ) { event.Skip(); }
- virtual void onConfigSaveAs( wxCommandEvent& event ) { event.Skip(); }
- virtual void onSaveAsBatchJob( wxCommandEvent& event ) { event.Skip(); }
- virtual void onMenuQuit( wxCommandEvent& event ) { event.Skip(); }
- virtual void onToggleLog( wxCommandEvent& event ) { event.Skip(); }
- virtual void onCompare( wxCommandEvent& event ) { event.Skip(); }
- virtual void onCmpSettings( wxCommandEvent& event ) { event.Skip(); }
- virtual void onConfigureFilter( wxCommandEvent& event ) { event.Skip(); }
- virtual void onSyncSettings( wxCommandEvent& event ) { event.Skip(); }
- virtual void onStartSync( wxCommandEvent& event ) { event.Skip(); }
- virtual void onMenuOptions( wxCommandEvent& event ) { event.Skip(); }
- virtual void onMenuFindItem( wxCommandEvent& event ) { event.Skip(); }
- virtual void onMenuExportFileList( wxCommandEvent& event ) { event.Skip(); }
- virtual void onMenuResetLayout( wxCommandEvent& event ) { event.Skip(); }
- virtual void onShowHelp( wxCommandEvent& event ) { event.Skip(); }
- virtual void onMenuCheckVersion( wxCommandEvent& event ) { event.Skip(); }
- virtual void onMenuCheckVersionAutomatically( wxCommandEvent& event ) { event.Skip(); }
- virtual void onMenuAbout( wxCommandEvent& event ) { event.Skip(); }
- virtual void onCompSettingsContextMouse( wxMouseEvent& event ) { event.Skip(); }
- virtual void onCompSettingsContext( wxCommandEvent& event ) { event.Skip(); }
- virtual void onGlobalFilterContextMouse( wxMouseEvent& event ) { event.Skip(); }
- virtual void onGlobalFilterContext( wxCommandEvent& event ) { event.Skip(); }
- virtual void onSyncSettingsContextMouse( wxMouseEvent& event ) { event.Skip(); }
- virtual void onSyncSettingsContext( wxCommandEvent& event ) { event.Skip(); }
- virtual void onTopFolderPairAdd( wxCommandEvent& event ) { event.Skip(); }
- virtual void onTopFolderPairRemove( wxCommandEvent& event ) { event.Skip(); }
- virtual void onSwapSides( wxCommandEvent& event ) { event.Skip(); }
- virtual void onTopLocalCompCfg( wxCommandEvent& event ) { event.Skip(); }
- virtual void onTopLocalFilterCfg( wxCommandEvent& event ) { event.Skip(); }
- virtual void onTopLocalSyncCfg( wxCommandEvent& event ) { event.Skip(); }
- virtual void onHideSearchPanel( wxCommandEvent& event ) { event.Skip(); }
- virtual void onSearchGridEnter( wxCommandEvent& event ) { event.Skip(); }
- virtual void onToggleViewType( wxCommandEvent& event ) { event.Skip(); }
- virtual void onViewTypeContextMouse( wxMouseEvent& event ) { event.Skip(); }
- virtual void onToggleViewButton( wxCommandEvent& event ) { event.Skip(); }
- virtual void onViewFilterContextMouse( wxMouseEvent& event ) { event.Skip(); }
- virtual void onViewFilterContext( wxCommandEvent& event ) { event.Skip(); }
-
-
-public:
- wxPanel* m_panelTopLeft;
- wxBitmapButton* m_bpButtonRemovePair;
- fff::FolderHistoryBox* m_folderPathLeft;
- wxBitmapButton* m_bpButtonSelectAltFolderLeft;
- wxBitmapButton* m_bpButtonLocalCompCfg;
- wxBitmapButton* m_bpButtonLocalFilter;
- wxBitmapButton* m_bpButtonLocalSyncCfg;
- wxPanel* m_panelTopRight;
- fff::FolderHistoryBox* m_folderPathRight;
- wxBitmapButton* m_bpButtonSelectAltFolderRight;
- wxStaticBitmap* m_bitmapSyncResult;
- wxStaticText* m_staticTextSyncResult;
- wxStaticText* m_staticTextProcessed;
- wxStaticText* m_staticTextRemaining;
- wxPanel* m_panelItemStats;
- wxStaticBitmap* m_bitmapItemStat;
- wxStaticText* m_staticTextItemsProcessed;
- wxStaticText* m_staticTextBytesProcessed;
- wxStaticText* m_staticTextItemsRemaining;
- wxStaticText* m_staticTextBytesRemaining;
- wxPanel* m_panelTimeStats;
- wxStaticBitmap* m_bitmapTimeStat;
- wxStaticText* m_staticTextTimeElapsed;
- wxBoxSizer* bSizerStatistics;
- wxBoxSizer* bSizerData;
-
- MainDialogGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("dummy"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1, -1 ), long style = wxDEFAULT_FRAME_STYLE|wxTAB_TRAVERSAL );
-
- ~MainDialogGenerated();
+ private:
+
+ protected:
+ wxMenuBar* m_menubar;
+ wxMenu* m_menuFile;
+ wxMenuItem* m_menuItemNew;
+ wxMenuItem* m_menuItemLoad;
+ wxMenuItem* m_menuItemSave;
+ wxMenuItem* m_menuItemSaveAs;
+ wxMenuItem* m_menuItemSaveAsBatch;
+ wxMenuItem* m_menuItemQuit;
+ wxMenu* m_menuActions;
+ wxMenuItem* m_menuItemShowLog;
+ wxMenuItem* m_menuItemCompare;
+ wxMenuItem* m_menuItemCompSettings;
+ wxMenuItem* m_menuItemFilter;
+ wxMenuItem* m_menuItemSyncSettings;
+ wxMenuItem* m_menuItemSynchronize;
+ wxMenu* m_menuTools;
+ wxMenuItem* m_menuItemOptions;
+ wxMenu* m_menuLanguages;
+ wxMenuItem* m_menuItemFind;
+ wxMenuItem* m_menuItemExportList;
+ wxMenuItem* m_menuItemResetLayout;
+ wxMenuItem* m_menuItemShowMain;
+ wxMenuItem* m_menuItemShowFolders;
+ wxMenuItem* m_menuItemShowViewFilter;
+ wxMenuItem* m_menuItemShowConfig;
+ wxMenuItem* m_menuItemShowOverview;
+ wxMenu* m_menuHelp;
+ wxMenuItem* m_menuItemHelp;
+ wxMenuItem* m_menuItemCheckVersionNow;
+ wxMenuItem* m_menuItemCheckVersionAuto;
+ wxMenuItem* m_menuItemAbout;
+ wxBoxSizer* bSizerPanelHolder;
+ wxPanel* m_panelTopButtons;
+ wxBoxSizer* bSizerTopButtons;
+ wxBitmapButton* m_bpButtonCmpConfig;
+ wxButton* m_buttonCancel;
+ zen::BitmapTextButton* m_buttonCompare;
+ wxBitmapButton* m_bpButtonCmpContext;
+ wxBitmapButton* m_bpButtonFilter;
+ wxBitmapButton* m_bpButtonFilterContext;
+ wxBitmapButton* m_bpButtonSyncConfig;
+ zen::BitmapTextButton* m_buttonSync;
+ wxBitmapButton* m_bpButtonSyncContext;
+ wxPanel* m_panelDirectoryPairs;
+ wxStaticText* m_staticTextResolvedPathL;
+ wxBitmapButton* m_bpButtonAddPair;
+ wxButton* m_buttonSelectFolderLeft;
+ wxPanel* m_panelTopCenter;
+ wxBitmapButton* m_bpButtonSwapSides;
+ wxStaticText* m_staticTextResolvedPathR;
+ wxButton* m_buttonSelectFolderRight;
+ wxScrolledWindow* m_scrolledWindowFolderPairs;
+ wxBoxSizer* bSizerAddFolderPairs;
+ zen::Grid* m_gridOverview;
+ wxPanel* m_panelCenter;
+ fff::TripleSplitter* m_splitterMain;
+ zen::Grid* m_gridMainL;
+ zen::Grid* m_gridMainC;
+ zen::Grid* m_gridMainR;
+ wxPanel* m_panelStatusBar;
+ wxBoxSizer* bSizerFileStatus;
+ wxBoxSizer* bSizerStatusLeft;
+ wxBoxSizer* bSizerStatusLeftDirectories;
+ wxStaticBitmap* m_bitmapSmallDirectoryLeft;
+ wxStaticText* m_staticTextStatusLeftDirs;
+ wxBoxSizer* bSizerStatusLeftFiles;
+ wxStaticBitmap* m_bitmapSmallFileLeft;
+ wxStaticText* m_staticTextStatusLeftFiles;
+ wxStaticText* m_staticTextStatusLeftBytes;
+ wxStaticLine* m_staticline9;
+ wxStaticText* m_staticTextStatusCenter;
+ wxBoxSizer* bSizerStatusRight;
+ wxStaticLine* m_staticline10;
+ wxBoxSizer* bSizerStatusRightDirectories;
+ wxStaticBitmap* m_bitmapSmallDirectoryRight;
+ wxStaticText* m_staticTextStatusRightDirs;
+ wxBoxSizer* bSizerStatusRightFiles;
+ wxStaticBitmap* m_bitmapSmallFileRight;
+ wxStaticText* m_staticTextStatusRightFiles;
+ wxStaticText* m_staticTextStatusRightBytes;
+ wxStaticText* m_staticTextFullStatus;
+ wxPanel* m_panelSearch;
+ wxBitmapButton* m_bpButtonHideSearch;
+ wxStaticText* m_staticText101;
+ wxTextCtrl* m_textCtrlSearchTxt;
+ wxCheckBox* m_checkBoxMatchCase;
+ wxPanel* m_panelLog;
+ wxBoxSizer* bSizerLog;
+ wxBoxSizer* bSizer42;
+ wxFlexGridSizer* ffgSizer11;
+ wxFlexGridSizer* ffgSizer111;
+ wxFlexGridSizer* ffgSizer112;
+ wxStaticLine* m_staticline70;
+ wxPanel* m_panelConfig;
+ wxBoxSizer* bSizerConfig;
+ wxBoxSizer* bSizerCfgHistoryButtons;
+ wxBitmapButton* m_bpButtonNew;
+ wxStaticText* m_staticText951;
+ wxBitmapButton* m_bpButtonOpen;
+ wxStaticText* m_staticText95;
+ wxBitmapButton* m_bpButtonSave;
+ wxStaticText* m_staticText961;
+ wxBitmapButton* m_bpButtonSaveAs;
+ wxBitmapButton* m_bpButtonSaveAsBatch;
+ wxStaticText* m_staticText97;
+ wxStaticLine* m_staticline81;
+ zen::Grid* m_gridCfgHistory;
+ wxPanel* m_panelViewFilter;
+ wxBoxSizer* bSizerViewFilter;
+ wxBitmapButton* m_bpButtonToggleLog;
+ zen::ToggleButton* m_bpButtonViewType;
+ zen::ToggleButton* m_bpButtonShowExcluded;
+ zen::ToggleButton* m_bpButtonShowDeleteLeft;
+ zen::ToggleButton* m_bpButtonShowUpdateLeft;
+ zen::ToggleButton* m_bpButtonShowCreateLeft;
+ zen::ToggleButton* m_bpButtonShowLeftOnly;
+ zen::ToggleButton* m_bpButtonShowLeftNewer;
+ zen::ToggleButton* m_bpButtonShowEqual;
+ zen::ToggleButton* m_bpButtonShowDoNothing;
+ zen::ToggleButton* m_bpButtonShowDifferent;
+ zen::ToggleButton* m_bpButtonShowRightNewer;
+ zen::ToggleButton* m_bpButtonShowRightOnly;
+ zen::ToggleButton* m_bpButtonShowCreateRight;
+ zen::ToggleButton* m_bpButtonShowUpdateRight;
+ zen::ToggleButton* m_bpButtonShowDeleteRight;
+ zen::ToggleButton* m_bpButtonShowConflict;
+ wxBitmapButton* m_bpButtonViewFilterContext;
+ wxStaticText* m_staticText96;
+ wxPanel* m_panelStatistics;
+ wxBoxSizer* bSizer1801;
+ wxStaticBitmap* m_bitmapDeleteLeft;
+ wxStaticText* m_staticTextDeleteLeft;
+ wxStaticBitmap* m_bitmapUpdateLeft;
+ wxStaticText* m_staticTextUpdateLeft;
+ wxStaticBitmap* m_bitmapCreateLeft;
+ wxStaticText* m_staticTextCreateLeft;
+ wxStaticBitmap* m_bitmapData;
+ wxStaticText* m_staticTextData;
+ wxStaticBitmap* m_bitmapCreateRight;
+ wxStaticText* m_staticTextCreateRight;
+ wxStaticBitmap* m_bitmapUpdateRight;
+ wxStaticText* m_staticTextUpdateRight;
+ wxStaticBitmap* m_bitmapDeleteRight;
+ wxStaticText* m_staticTextDeleteRight;
+
+ // Virtual event handlers, override them in your derived class
+ virtual void onClose( wxCloseEvent& event ) { event.Skip(); }
+ virtual void onConfigNew( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onConfigLoad( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onConfigSave( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onConfigSaveAs( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onSaveAsBatchJob( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onMenuQuit( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onToggleLog( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onCompare( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onCmpSettings( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onConfigureFilter( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onSyncSettings( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onStartSync( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onMenuOptions( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onMenuFindItem( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onMenuExportFileList( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onMenuResetLayout( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onShowHelp( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onMenuCheckVersion( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onMenuCheckVersionAutomatically( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onMenuAbout( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onCompSettingsContextMouse( wxMouseEvent& event ) { event.Skip(); }
+ virtual void onCompSettingsContext( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onGlobalFilterContextMouse( wxMouseEvent& event ) { event.Skip(); }
+ virtual void onGlobalFilterContext( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onSyncSettingsContextMouse( wxMouseEvent& event ) { event.Skip(); }
+ virtual void onSyncSettingsContext( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onTopFolderPairAdd( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onTopFolderPairRemove( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onSwapSides( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onSwapSidesMouse( wxMouseEvent& event ) { event.Skip(); }
+ virtual void onTopLocalCompCfg( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onTopLocalFilterCfg( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onTopLocalSyncCfg( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onHideSearchPanel( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onSearchGridEnter( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onToggleViewType( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onViewTypeContextMouse( wxMouseEvent& event ) { event.Skip(); }
+ virtual void onToggleViewButton( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onViewFilterContextMouse( wxMouseEvent& event ) { event.Skip(); }
+ virtual void onViewFilterContext( wxCommandEvent& event ) { event.Skip(); }
+
+
+ public:
+ wxPanel* m_panelTopLeft;
+ wxBitmapButton* m_bpButtonRemovePair;
+ fff::FolderHistoryBox* m_folderPathLeft;
+ wxBitmapButton* m_bpButtonSelectAltFolderLeft;
+ wxBitmapButton* m_bpButtonLocalCompCfg;
+ wxBitmapButton* m_bpButtonLocalFilter;
+ wxBitmapButton* m_bpButtonLocalSyncCfg;
+ wxPanel* m_panelTopRight;
+ fff::FolderHistoryBox* m_folderPathRight;
+ wxBitmapButton* m_bpButtonSelectAltFolderRight;
+ wxStaticBitmap* m_bitmapSyncResult;
+ wxStaticText* m_staticTextSyncResult;
+ wxStaticText* m_staticTextProcessed;
+ wxStaticText* m_staticTextRemaining;
+ wxPanel* m_panelItemStats;
+ wxStaticBitmap* m_bitmapItemStat;
+ wxStaticText* m_staticTextItemsProcessed;
+ wxStaticText* m_staticTextBytesProcessed;
+ wxStaticText* m_staticTextItemsRemaining;
+ wxStaticText* m_staticTextBytesRemaining;
+ wxPanel* m_panelTimeStats;
+ wxStaticBitmap* m_bitmapTimeStat;
+ wxStaticText* m_staticTextTimeElapsed;
+ wxBoxSizer* bSizerStatistics;
+ wxBoxSizer* bSizerData;
+
+ MainDialogGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("dummy"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_FRAME_STYLE|wxTAB_TRAVERSAL );
+
+ ~MainDialogGenerated();
};
@@ -293,29 +294,29 @@ public:
///////////////////////////////////////////////////////////////////////////////
class FolderPairPanelGenerated : public wxPanel
{
-private:
-
-protected:
- wxButton* m_buttonSelectFolderLeft;
- wxButton* m_buttonSelectFolderRight;
-
-public:
- wxPanel* m_panelLeft;
- wxBitmapButton* m_bpButtonFolderPairOptions;
- wxBitmapButton* m_bpButtonRemovePair;
- fff::FolderHistoryBox* m_folderPathLeft;
- wxBitmapButton* m_bpButtonSelectAltFolderLeft;
- wxPanel* m_panel20;
- wxBitmapButton* m_bpButtonLocalCompCfg;
- wxBitmapButton* m_bpButtonLocalFilter;
- wxBitmapButton* m_bpButtonLocalSyncCfg;
- wxPanel* m_panelRight;
- fff::FolderHistoryBox* m_folderPathRight;
- wxBitmapButton* m_bpButtonSelectAltFolderRight;
-
- FolderPairPanelGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 698, 67 ), long style = 0, const wxString& name = wxEmptyString );
-
- ~FolderPairPanelGenerated();
+ private:
+
+ protected:
+ wxButton* m_buttonSelectFolderLeft;
+ wxButton* m_buttonSelectFolderRight;
+
+ public:
+ wxPanel* m_panelLeft;
+ wxBitmapButton* m_bpButtonFolderPairOptions;
+ wxBitmapButton* m_bpButtonRemovePair;
+ fff::FolderHistoryBox* m_folderPathLeft;
+ wxBitmapButton* m_bpButtonSelectAltFolderLeft;
+ wxPanel* m_panel20;
+ wxBitmapButton* m_bpButtonLocalCompCfg;
+ wxBitmapButton* m_bpButtonLocalFilter;
+ wxBitmapButton* m_bpButtonLocalSyncCfg;
+ wxPanel* m_panelRight;
+ fff::FolderHistoryBox* m_folderPathRight;
+ wxBitmapButton* m_bpButtonSelectAltFolderRight;
+
+ FolderPairPanelGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 698,67 ), long style = 0, const wxString& name = wxEmptyString );
+
+ ~FolderPairPanelGenerated();
};
@@ -324,233 +325,233 @@ public:
///////////////////////////////////////////////////////////////////////////////
class ConfigDlgGenerated : public wxDialog
{
-private:
-
-protected:
- wxStaticText* m_staticTextFolderPairLabel;
- wxListBox* m_listBoxFolderPair;
- wxNotebook* m_notebook;
- wxPanel* m_panelCompSettingsTab;
- wxBoxSizer* bSizerHeaderCompSettings;
- wxStaticText* m_staticTextMainCompSettings;
- wxCheckBox* m_checkBoxUseLocalCmpOptions;
- wxStaticLine* m_staticlineCompHeader;
- wxPanel* m_panelComparisonSettings;
- wxStaticText* m_staticText91;
- zen::ToggleButton* m_buttonByTimeSize;
- zen::ToggleButton* m_buttonByContent;
- zen::ToggleButton* m_buttonBySize;
- wxStaticBitmap* m_bitmapCompVariant;
- wxStaticText* m_staticTextCompVarDescription;
- wxStaticLine* m_staticline33;
- wxCheckBox* m_checkBoxSymlinksInclude;
- wxRadioButton* m_radioBtnSymlinksFollow;
- wxRadioButton* m_radioBtnSymlinksDirect;
- wxHyperlinkCtrl* m_hyperlink24;
- wxStaticLine* m_staticline44;
- wxStaticText* m_staticText112;
- wxTextCtrl* m_textCtrlTimeShift;
- wxStaticText* m_staticText1381;
- wxStaticText* m_staticText13811;
- wxHyperlinkCtrl* m_hyperlink241;
- wxStaticLine* m_staticline331;
- wxBoxSizer* bSizerCompMisc;
- wxStaticBitmap* m_bitmapIgnoreErrors;
- wxCheckBox* m_checkBoxIgnoreErrors;
- wxCheckBox* m_checkBoxAutoRetry;
- wxFlexGridSizer* fgSizerAutoRetry;
- wxStaticText* m_staticText96;
- wxStaticText* m_staticTextAutoRetryDelay;
- wxSpinCtrl* m_spinCtrlAutoRetryCount;
- wxSpinCtrl* m_spinCtrlAutoRetryDelay;
- wxStaticLine* m_staticline3311;
- wxStaticLine* m_staticline751;
- wxBoxSizer* bSizerPerformance;
- wxPanel* m_panel57;
- wxStaticBitmap* m_bitmapPerf;
- wxStaticText* m_staticText13611;
- wxHyperlinkCtrl* m_hyperlinkPerfDeRequired;
- wxBoxSizer* bSizer260;
- wxStaticText* m_staticTextPerfParallelOps;
- wxScrolledWindow* m_scrolledWindowPerf;
- wxFlexGridSizer* fgSizerPerf;
- wxHyperlinkCtrl* m_hyperlink1711;
- wxPanel* m_panelFilterSettingsTab;
- wxBoxSizer* bSizerHeaderFilterSettings;
- wxStaticText* m_staticTextMainFilterSettings;
- wxStaticText* m_staticTextLocalFilterSettings;
- wxStaticLine* m_staticlineFilterHeader;
- wxStaticBitmap* m_bitmapInclude;
- wxStaticText* m_staticText78;
- wxTextCtrl* m_textCtrlInclude;
- wxStaticBitmap* m_bitmapExclude;
- wxStaticText* m_staticText77;
- wxHyperlinkCtrl* m_hyperlink171;
- wxTextCtrl* m_textCtrlExclude;
- wxStaticLine* m_staticline24;
- wxStaticBitmap* m_bitmapFilterSize;
- wxStaticText* m_staticText80;
- wxStaticText* m_staticText101;
- wxSpinCtrl* m_spinCtrlMinSize;
- wxChoice* m_choiceUnitMinSize;
- wxStaticText* m_staticText102;
- wxSpinCtrl* m_spinCtrlMaxSize;
- wxChoice* m_choiceUnitMaxSize;
- wxStaticLine* m_staticline23;
- wxStaticBitmap* m_bitmapFilterDate;
- wxStaticText* m_staticText79;
- wxChoice* m_choiceUnitTimespan;
- wxSpinCtrl* m_spinCtrlTimespan;
- wxStaticLine* m_staticline231;
- wxButton* m_buttonDefault;
- wxBitmapButton* m_bpButtonDefaultContext;
- wxButton* m_buttonClear;
- wxPanel* m_panelSyncSettingsTab;
- wxBoxSizer* bSizerHeaderSyncSettings;
- wxStaticText* m_staticTextMainSyncSettings;
- wxCheckBox* m_checkBoxUseLocalSyncOptions;
- wxStaticLine* m_staticlineSyncHeader;
- wxPanel* m_panelSyncSettings;
- wxStaticText* m_staticText86;
- zen::ToggleButton* m_buttonTwoWay;
- zen::ToggleButton* m_buttonMirror;
- zen::ToggleButton* m_buttonUpdate;
- zen::ToggleButton* m_buttonCustom;
- wxBoxSizer* bSizerSyncDirHolder;
- wxBoxSizer* bSizerSyncDirections;
- wxStaticText* m_staticText184;
- wxFlexGridSizer* ffgSizer11;
- wxStaticBitmap* m_bitmapLeftOnly;
- wxStaticBitmap* m_bitmapLeftNewer;
- wxStaticBitmap* m_bitmapDifferent;
- wxStaticBitmap* m_bitmapConflict;
- wxStaticBitmap* m_bitmapRightNewer;
- wxStaticBitmap* m_bitmapRightOnly;
- wxBitmapButton* m_bpButtonLeftOnly;
- wxBitmapButton* m_bpButtonLeftNewer;
- wxBitmapButton* m_bpButtonDifferent;
- wxBitmapButton* m_bpButtonConflict;
- wxBitmapButton* m_bpButtonRightNewer;
- wxBitmapButton* m_bpButtonRightOnly;
- wxStaticText* m_staticText120;
- wxBoxSizer* bSizerDatabase;
- wxStaticBitmap* m_bitmapDatabase;
- wxStaticText* m_staticText145;
- wxStaticText* m_staticTextSyncVarDescription;
- wxStaticLine* m_staticline431;
- wxStaticLine* m_staticline72;
- wxCheckBox* m_checkBoxDetectMove;
- wxHyperlinkCtrl* m_hyperlink242;
- wxStaticLine* m_staticline54;
- wxBoxSizer* bSizer2361;
- wxStaticText* m_staticText87;
- zen::ToggleButton* m_buttonRecycler;
- zen::ToggleButton* m_buttonPermanent;
- zen::ToggleButton* m_buttonVersioning;
- wxBoxSizer* bSizerVersioningHolder;
- wxStaticBitmap* m_bitmapDeletionType;
- wxStaticText* m_staticTextDeletionTypeDescription;
- wxPanel* m_panelVersioning;
- wxStaticBitmap* m_bitmapVersioning;
- wxStaticText* m_staticText155;
- wxHyperlinkCtrl* m_hyperlink243;
- fff::FolderHistoryBox* m_versioningFolderPath;
- wxButton* m_buttonSelectVersioningFolder;
- wxStaticText* m_staticText93;
- wxChoice* m_choiceVersioningStyle;
- wxStaticText* m_staticTextNamingCvtPart1;
- wxStaticText* m_staticTextNamingCvtPart2Bold;
- wxStaticText* m_staticTextNamingCvtPart3;
- wxStaticLine* m_staticline69;
- wxStaticText* m_staticTextLimitVersions;
- wxFlexGridSizer* fgSizer15;
- wxCheckBox* m_checkBoxVersionMaxDays;
- wxCheckBox* m_checkBoxVersionCountMin;
- wxCheckBox* m_checkBoxVersionCountMax;
- wxSpinCtrl* m_spinCtrlVersionMaxDays;
- wxSpinCtrl* m_spinCtrlVersionCountMin;
- wxSpinCtrl* m_spinCtrlVersionCountMax;
- wxStaticLine* m_staticline582;
- wxBoxSizer* bSizerSyncMisc;
- wxStaticBitmap* m_bitmapEmail;
- wxCheckBox* m_checkBoxSendEmail;
- fff::CommandBox* m_comboBoxEmail;
- wxBitmapButton* m_bpButtonEmailAlways;
- wxBitmapButton* m_bpButtonEmailErrorWarning;
- wxBitmapButton* m_bpButtonEmailErrorOnly;
- wxHyperlinkCtrl* m_hyperlinkPerfDeRequired2;
- wxStaticLine* m_staticline57;
- wxPanel* m_panelLogfile;
- wxStaticBitmap* m_bitmapLogFile;
- wxCheckBox* m_checkBoxOverrideLogPath;
- wxButton* m_buttonSelectLogFolder;
- wxStaticLine* m_staticline80;
- wxStaticText* m_staticTextPostSync;
- fff::CommandBox* m_comboBoxPostSyncCommand;
- wxBoxSizer* bSizerStdButtons;
- wxButton* m_buttonOkay;
- wxButton* m_buttonCancel;
-
- // Virtual event handlers, override them in your derived class
- virtual void onClose( wxCloseEvent& event ) { event.Skip(); }
- virtual void onListBoxKeyEvent( wxKeyEvent& event ) { event.Skip(); }
- virtual void onSelectFolderPair( wxCommandEvent& event ) { event.Skip(); }
- virtual void onToggleLocalCompSettings( wxCommandEvent& event ) { event.Skip(); }
- virtual void onCompByTimeSize( wxCommandEvent& event ) { event.Skip(); }
- virtual void onCompByTimeSizeDouble( wxMouseEvent& event ) { event.Skip(); }
- virtual void onCompByContent( wxCommandEvent& event ) { event.Skip(); }
- virtual void onCompByContentDouble( wxMouseEvent& event ) { event.Skip(); }
- virtual void onCompBySize( wxCommandEvent& event ) { event.Skip(); }
- virtual void onCompBySizeDouble( wxMouseEvent& event ) { event.Skip(); }
- virtual void onChangeCompOption( wxCommandEvent& event ) { event.Skip(); }
- virtual void onToggleIgnoreErrors( wxCommandEvent& event ) { event.Skip(); }
- virtual void onToggleAutoRetry( wxCommandEvent& event ) { event.Skip(); }
- virtual void onChangeFilterOption( wxCommandEvent& event ) { event.Skip(); }
- virtual void onFilterDefault( wxCommandEvent& event ) { event.Skip(); }
- virtual void onFilterDefaultContextMouse( wxMouseEvent& event ) { event.Skip(); }
- virtual void onFilterDefaultContext( wxCommandEvent& event ) { event.Skip(); }
- virtual void onFilterClear( wxCommandEvent& event ) { event.Skip(); }
- virtual void onToggleLocalSyncSettings( wxCommandEvent& event ) { event.Skip(); }
- virtual void onSyncTwoWay( wxCommandEvent& event ) { event.Skip(); }
- virtual void onSyncTwoWayDouble( wxMouseEvent& event ) { event.Skip(); }
- virtual void onSyncMirror( wxCommandEvent& event ) { event.Skip(); }
- virtual void onSyncMirrorDouble( wxMouseEvent& event ) { event.Skip(); }
- virtual void onSyncUpdate( wxCommandEvent& event ) { event.Skip(); }
- virtual void onSyncUpdateDouble( wxMouseEvent& event ) { event.Skip(); }
- virtual void onSyncCustom( wxCommandEvent& event ) { event.Skip(); }
- virtual void onSyncCustomDouble( wxMouseEvent& event ) { event.Skip(); }
- virtual void onExLeftSideOnly( wxCommandEvent& event ) { event.Skip(); }
- virtual void onLeftNewer( wxCommandEvent& event ) { event.Skip(); }
- virtual void onDifferent( wxCommandEvent& event ) { event.Skip(); }
- virtual void onConflict( wxCommandEvent& event ) { event.Skip(); }
- virtual void onRightNewer( wxCommandEvent& event ) { event.Skip(); }
- virtual void onExRightSideOnly( wxCommandEvent& event ) { event.Skip(); }
- virtual void onToggleDetectMovedFiles( wxCommandEvent& event ) { event.Skip(); }
- virtual void onDeletionRecycler( wxCommandEvent& event ) { event.Skip(); }
- virtual void onDeletionPermanent( wxCommandEvent& event ) { event.Skip(); }
- virtual void onDeletionVersioning( wxCommandEvent& event ) { event.Skip(); }
- virtual void onChanegVersioningStyle( wxCommandEvent& event ) { event.Skip(); }
- virtual void onToggleVersioningLimit( wxCommandEvent& event ) { event.Skip(); }
- virtual void onToggleMiscEmail( wxCommandEvent& event ) { event.Skip(); }
- virtual void onEmailAlways( wxCommandEvent& event ) { event.Skip(); }
- virtual void onEmailErrorWarning( wxCommandEvent& event ) { event.Skip(); }
- virtual void onEmailErrorOnly( wxCommandEvent& event ) { event.Skip(); }
- virtual void onToggleMiscOption( wxCommandEvent& event ) { event.Skip(); }
- virtual void onOkay( wxCommandEvent& event ) { event.Skip(); }
- virtual void onCancel( wxCommandEvent& event ) { event.Skip(); }
-
-
-public:
- wxStaticBitmap* m_bitmapRetryErrors;
- wxStaticText* m_staticTextFilterDescr;
- wxBitmapButton* m_bpButtonSelectVersioningAltFolder;
- wxBitmapButton* m_bpButtonSelectAltLogFolder;
- fff::FolderHistoryBox* m_logFolderPath;
- wxChoice* m_choicePostSyncCondition;
-
- ConfigDlgGenerated( 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|wxMAXIMIZE_BOX|wxRESIZE_BORDER );
-
- ~ConfigDlgGenerated();
+ private:
+
+ protected:
+ wxStaticText* m_staticTextFolderPairLabel;
+ wxListBox* m_listBoxFolderPair;
+ wxNotebook* m_notebook;
+ wxPanel* m_panelCompSettingsTab;
+ wxBoxSizer* bSizerHeaderCompSettings;
+ wxStaticText* m_staticTextMainCompSettings;
+ wxCheckBox* m_checkBoxUseLocalCmpOptions;
+ wxStaticLine* m_staticlineCompHeader;
+ wxPanel* m_panelComparisonSettings;
+ wxStaticText* m_staticText91;
+ zen::ToggleButton* m_buttonByTimeSize;
+ zen::ToggleButton* m_buttonByContent;
+ zen::ToggleButton* m_buttonBySize;
+ wxStaticBitmap* m_bitmapCompVariant;
+ wxStaticText* m_staticTextCompVarDescription;
+ wxStaticLine* m_staticline33;
+ wxCheckBox* m_checkBoxSymlinksInclude;
+ wxRadioButton* m_radioBtnSymlinksFollow;
+ wxRadioButton* m_radioBtnSymlinksDirect;
+ wxHyperlinkCtrl* m_hyperlink24;
+ wxStaticLine* m_staticline44;
+ wxStaticText* m_staticText112;
+ wxTextCtrl* m_textCtrlTimeShift;
+ wxStaticText* m_staticText1381;
+ wxStaticText* m_staticText13811;
+ wxHyperlinkCtrl* m_hyperlink241;
+ wxStaticLine* m_staticline331;
+ wxBoxSizer* bSizerCompMisc;
+ wxStaticBitmap* m_bitmapIgnoreErrors;
+ wxCheckBox* m_checkBoxIgnoreErrors;
+ wxCheckBox* m_checkBoxAutoRetry;
+ wxFlexGridSizer* fgSizerAutoRetry;
+ wxStaticText* m_staticText96;
+ wxStaticText* m_staticTextAutoRetryDelay;
+ wxSpinCtrl* m_spinCtrlAutoRetryCount;
+ wxSpinCtrl* m_spinCtrlAutoRetryDelay;
+ wxStaticLine* m_staticline3311;
+ wxStaticLine* m_staticline751;
+ wxBoxSizer* bSizerPerformance;
+ wxPanel* m_panel57;
+ wxStaticBitmap* m_bitmapPerf;
+ wxStaticText* m_staticText13611;
+ wxHyperlinkCtrl* m_hyperlinkPerfDeRequired;
+ wxBoxSizer* bSizer260;
+ wxStaticText* m_staticTextPerfParallelOps;
+ wxScrolledWindow* m_scrolledWindowPerf;
+ wxFlexGridSizer* fgSizerPerf;
+ wxHyperlinkCtrl* m_hyperlink1711;
+ wxPanel* m_panelFilterSettingsTab;
+ wxBoxSizer* bSizerHeaderFilterSettings;
+ wxStaticText* m_staticTextMainFilterSettings;
+ wxStaticText* m_staticTextLocalFilterSettings;
+ wxStaticLine* m_staticlineFilterHeader;
+ wxStaticBitmap* m_bitmapInclude;
+ wxStaticText* m_staticText78;
+ wxTextCtrl* m_textCtrlInclude;
+ wxStaticBitmap* m_bitmapExclude;
+ wxStaticText* m_staticText77;
+ wxHyperlinkCtrl* m_hyperlink171;
+ wxTextCtrl* m_textCtrlExclude;
+ wxStaticLine* m_staticline24;
+ wxStaticBitmap* m_bitmapFilterSize;
+ wxStaticText* m_staticText80;
+ wxStaticText* m_staticText101;
+ wxSpinCtrl* m_spinCtrlMinSize;
+ wxChoice* m_choiceUnitMinSize;
+ wxStaticText* m_staticText102;
+ wxSpinCtrl* m_spinCtrlMaxSize;
+ wxChoice* m_choiceUnitMaxSize;
+ wxStaticLine* m_staticline23;
+ wxStaticBitmap* m_bitmapFilterDate;
+ wxStaticText* m_staticText79;
+ wxChoice* m_choiceUnitTimespan;
+ wxSpinCtrl* m_spinCtrlTimespan;
+ wxStaticLine* m_staticline231;
+ wxButton* m_buttonDefault;
+ wxBitmapButton* m_bpButtonDefaultContext;
+ wxButton* m_buttonClear;
+ wxPanel* m_panelSyncSettingsTab;
+ wxBoxSizer* bSizerHeaderSyncSettings;
+ wxStaticText* m_staticTextMainSyncSettings;
+ wxCheckBox* m_checkBoxUseLocalSyncOptions;
+ wxStaticLine* m_staticlineSyncHeader;
+ wxPanel* m_panelSyncSettings;
+ wxStaticText* m_staticText86;
+ zen::ToggleButton* m_buttonTwoWay;
+ zen::ToggleButton* m_buttonMirror;
+ zen::ToggleButton* m_buttonUpdate;
+ zen::ToggleButton* m_buttonCustom;
+ wxBoxSizer* bSizerSyncDirHolder;
+ wxBoxSizer* bSizerSyncDirections;
+ wxStaticText* m_staticText184;
+ wxFlexGridSizer* ffgSizer11;
+ wxStaticBitmap* m_bitmapLeftOnly;
+ wxStaticBitmap* m_bitmapLeftNewer;
+ wxStaticBitmap* m_bitmapDifferent;
+ wxStaticBitmap* m_bitmapConflict;
+ wxStaticBitmap* m_bitmapRightNewer;
+ wxStaticBitmap* m_bitmapRightOnly;
+ wxBitmapButton* m_bpButtonLeftOnly;
+ wxBitmapButton* m_bpButtonLeftNewer;
+ wxBitmapButton* m_bpButtonDifferent;
+ wxBitmapButton* m_bpButtonConflict;
+ wxBitmapButton* m_bpButtonRightNewer;
+ wxBitmapButton* m_bpButtonRightOnly;
+ wxStaticText* m_staticText120;
+ wxBoxSizer* bSizerDatabase;
+ wxStaticBitmap* m_bitmapDatabase;
+ wxStaticText* m_staticText145;
+ wxStaticText* m_staticTextSyncVarDescription;
+ wxStaticLine* m_staticline431;
+ wxStaticLine* m_staticline72;
+ wxCheckBox* m_checkBoxDetectMove;
+ wxHyperlinkCtrl* m_hyperlink242;
+ wxStaticLine* m_staticline54;
+ wxBoxSizer* bSizer2361;
+ wxStaticText* m_staticText87;
+ zen::ToggleButton* m_buttonRecycler;
+ zen::ToggleButton* m_buttonPermanent;
+ zen::ToggleButton* m_buttonVersioning;
+ wxBoxSizer* bSizerVersioningHolder;
+ wxStaticBitmap* m_bitmapDeletionType;
+ wxStaticText* m_staticTextDeletionTypeDescription;
+ wxPanel* m_panelVersioning;
+ wxStaticBitmap* m_bitmapVersioning;
+ wxStaticText* m_staticText155;
+ wxHyperlinkCtrl* m_hyperlink243;
+ fff::FolderHistoryBox* m_versioningFolderPath;
+ wxButton* m_buttonSelectVersioningFolder;
+ wxStaticText* m_staticText93;
+ wxChoice* m_choiceVersioningStyle;
+ wxStaticText* m_staticTextNamingCvtPart1;
+ wxStaticText* m_staticTextNamingCvtPart2Bold;
+ wxStaticText* m_staticTextNamingCvtPart3;
+ wxStaticLine* m_staticline69;
+ wxStaticText* m_staticTextLimitVersions;
+ wxFlexGridSizer* fgSizer15;
+ wxCheckBox* m_checkBoxVersionMaxDays;
+ wxCheckBox* m_checkBoxVersionCountMin;
+ wxCheckBox* m_checkBoxVersionCountMax;
+ wxSpinCtrl* m_spinCtrlVersionMaxDays;
+ wxSpinCtrl* m_spinCtrlVersionCountMin;
+ wxSpinCtrl* m_spinCtrlVersionCountMax;
+ wxStaticLine* m_staticline582;
+ wxBoxSizer* bSizerSyncMisc;
+ wxStaticBitmap* m_bitmapEmail;
+ wxCheckBox* m_checkBoxSendEmail;
+ fff::CommandBox* m_comboBoxEmail;
+ wxBitmapButton* m_bpButtonEmailAlways;
+ wxBitmapButton* m_bpButtonEmailErrorWarning;
+ wxBitmapButton* m_bpButtonEmailErrorOnly;
+ wxHyperlinkCtrl* m_hyperlinkPerfDeRequired2;
+ wxStaticLine* m_staticline57;
+ wxPanel* m_panelLogfile;
+ wxStaticBitmap* m_bitmapLogFile;
+ wxCheckBox* m_checkBoxOverrideLogPath;
+ wxButton* m_buttonSelectLogFolder;
+ wxStaticLine* m_staticline80;
+ wxStaticText* m_staticTextPostSync;
+ fff::CommandBox* m_comboBoxPostSyncCommand;
+ wxBoxSizer* bSizerStdButtons;
+ wxButton* m_buttonOkay;
+ wxButton* m_buttonCancel;
+
+ // Virtual event handlers, override them in your derived class
+ virtual void onClose( wxCloseEvent& event ) { event.Skip(); }
+ virtual void onListBoxKeyEvent( wxKeyEvent& event ) { event.Skip(); }
+ virtual void onSelectFolderPair( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onToggleLocalCompSettings( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onCompByTimeSize( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onCompByTimeSizeDouble( wxMouseEvent& event ) { event.Skip(); }
+ virtual void onCompByContent( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onCompByContentDouble( wxMouseEvent& event ) { event.Skip(); }
+ virtual void onCompBySize( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onCompBySizeDouble( wxMouseEvent& event ) { event.Skip(); }
+ virtual void onChangeCompOption( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onToggleIgnoreErrors( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onToggleAutoRetry( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onChangeFilterOption( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onFilterDefault( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onFilterDefaultContextMouse( wxMouseEvent& event ) { event.Skip(); }
+ virtual void onFilterDefaultContext( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onFilterClear( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onToggleLocalSyncSettings( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onSyncTwoWay( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onSyncTwoWayDouble( wxMouseEvent& event ) { event.Skip(); }
+ virtual void onSyncMirror( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onSyncMirrorDouble( wxMouseEvent& event ) { event.Skip(); }
+ virtual void onSyncUpdate( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onSyncUpdateDouble( wxMouseEvent& event ) { event.Skip(); }
+ virtual void onSyncCustom( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onSyncCustomDouble( wxMouseEvent& event ) { event.Skip(); }
+ virtual void onExLeftSideOnly( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onLeftNewer( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onDifferent( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onConflict( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onRightNewer( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onExRightSideOnly( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onToggleDetectMovedFiles( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onDeletionRecycler( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onDeletionPermanent( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onDeletionVersioning( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onChanegVersioningStyle( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onToggleVersioningLimit( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onToggleMiscEmail( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onEmailAlways( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onEmailErrorWarning( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onEmailErrorOnly( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onToggleMiscOption( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onOkay( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onCancel( wxCommandEvent& event ) { event.Skip(); }
+
+
+ public:
+ wxStaticBitmap* m_bitmapRetryErrors;
+ wxStaticText* m_staticTextFilterDescr;
+ wxBitmapButton* m_bpButtonSelectVersioningAltFolder;
+ wxBitmapButton* m_bpButtonSelectAltLogFolder;
+ fff::FolderHistoryBox* m_logFolderPath;
+ wxChoice* m_choicePostSyncCondition;
+
+ ConfigDlgGenerated( 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|wxMAXIMIZE_BOX|wxRESIZE_BORDER );
+
+ ~ConfigDlgGenerated();
};
@@ -559,113 +560,113 @@ public:
///////////////////////////////////////////////////////////////////////////////
class CloudSetupDlgGenerated : public wxDialog
{
-private:
-
-protected:
- wxStaticBitmap* m_bitmapCloud;
- wxStaticText* m_staticText136;
- wxToggleButton* m_toggleBtnGdrive;
- wxToggleButton* m_toggleBtnSftp;
- wxToggleButton* m_toggleBtnFtp;
- wxStaticLine* m_staticline371;
- wxPanel* m_panel41;
- wxBoxSizer* bSizerGdrive;
- wxStaticBitmap* m_bitmapGdriveUser;
- wxStaticText* m_staticText166;
- wxListBox* m_listBoxGdriveUsers;
- zen::BitmapTextButton* m_buttonGdriveAddUser;
- zen::BitmapTextButton* m_buttonGdriveRemoveUser;
- wxStaticLine* m_staticline841;
- wxStaticBitmap* m_bitmapGdriveDrive;
- wxStaticText* m_staticText186;
- wxListBox* m_listBoxGdriveDrives;
- wxStaticLine* m_staticline73;
- wxBoxSizer* bSizerServer;
- wxStaticBitmap* m_bitmapServer;
- wxStaticText* m_staticText12311;
- wxTextCtrl* m_textCtrlServer;
- wxStaticText* m_staticText1233;
- wxTextCtrl* m_textCtrlPort;
- wxStaticLine* m_staticline58;
- wxBoxSizer* bSizerAuth;
- wxBoxSizer* bSizerAuthInner;
- wxBoxSizer* bSizerFtpEncrypt;
- wxStaticText* m_staticText1251;
- wxRadioButton* m_radioBtnEncryptNone;
- wxRadioButton* m_radioBtnEncryptSsl;
- wxStaticLine* m_staticline5721;
- wxBoxSizer* bSizerSftpAuth;
- wxStaticText* m_staticText125;
- wxRadioButton* m_radioBtnPassword;
- wxRadioButton* m_radioBtnKeyfile;
- wxRadioButton* m_radioBtnAgent;
- wxStaticLine* m_staticline572;
- wxPanel* m_panelAuth;
- wxStaticText* m_staticText123;
- wxTextCtrl* m_textCtrlUserName;
- wxStaticText* m_staticTextKeyfile;
- wxBoxSizer* bSizerKeyFile;
- wxTextCtrl* m_textCtrlKeyfilePath;
- wxButton* m_buttonSelectKeyfile;
- wxStaticText* m_staticTextPassword;
- wxBoxSizer* bSizerPassword;
- wxTextCtrl* m_textCtrlPasswordVisible;
- wxTextCtrl* m_textCtrlPasswordHidden;
- wxCheckBox* m_checkBoxShowPassword;
- wxStaticLine* m_staticline581;
- wxStaticBitmap* m_bitmapServerDir;
- wxStaticText* m_staticText1232;
- wxTextCtrl* m_textCtrlServerPath;
- wxButton* m_buttonSelectFolder;
- wxBoxSizer* bSizerAccessTimeout;
- wxStaticText* m_staticTextTimeout;
- wxSpinCtrl* m_spinCtrlTimeout;
- wxStaticLine* m_staticline571;
- wxStaticBitmap* m_bitmapPerf;
- wxStaticText* m_staticText1361;
- wxHyperlinkCtrl* m_hyperlink171;
- wxStaticLine* m_staticline57;
- wxPanel* m_panel411;
- wxBoxSizer* bSizerConnectionsLabel;
- wxStaticText* m_staticTextConnectionsLabel;
- wxStaticText* m_staticTextConnectionsLabelSub;
- wxSpinCtrl* m_spinCtrlConnectionCount;
- wxStaticText* m_staticTextConnectionCountDescr;
- wxHyperlinkCtrl* m_hyperlinkDeRequired;
- wxStaticText* m_staticTextChannelCountSftp;
- wxSpinCtrl* m_spinCtrlChannelCountSftp;
- wxButton* m_buttonChannelCountSftp;
- wxCheckBox* m_checkBoxAllowZlib;
- wxStaticText* m_staticTextZlibDescr;
- wxStaticLine* m_staticline12;
- wxBoxSizer* bSizerStdButtons;
- wxButton* m_buttonOkay;
- wxButton* m_buttonCancel;
-
- // Virtual event handlers, override them in your derived class
- virtual void onClose( wxCloseEvent& event ) { event.Skip(); }
- virtual void onConnectionGdrive( wxCommandEvent& event ) { event.Skip(); }
- virtual void onConnectionSftp( wxCommandEvent& event ) { event.Skip(); }
- virtual void onConnectionFtp( wxCommandEvent& event ) { event.Skip(); }
- virtual void onGdriveUserSelect( wxCommandEvent& event ) { event.Skip(); }
- virtual void onGdriveUserAdd( wxCommandEvent& event ) { event.Skip(); }
- virtual void onGdriveUserRemove( wxCommandEvent& event ) { event.Skip(); }
- virtual void onAuthPassword( wxCommandEvent& event ) { event.Skip(); }
- virtual void onAuthKeyfile( wxCommandEvent& event ) { event.Skip(); }
- virtual void onAuthAgent( wxCommandEvent& event ) { event.Skip(); }
- virtual void onSelectKeyfile( wxCommandEvent& event ) { event.Skip(); }
- virtual void onToggleShowPassword( wxCommandEvent& event ) { event.Skip(); }
- virtual void onBrowseCloudFolder( wxCommandEvent& event ) { event.Skip(); }
- virtual void onDetectServerChannelLimit( wxCommandEvent& event ) { event.Skip(); }
- virtual void onOkay( wxCommandEvent& event ) { event.Skip(); }
- virtual void onCancel( wxCommandEvent& event ) { event.Skip(); }
-
-
-public:
-
- CloudSetupDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Access Online Storage"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1, -1 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
-
- ~CloudSetupDlgGenerated();
+ private:
+
+ protected:
+ wxStaticBitmap* m_bitmapCloud;
+ wxStaticText* m_staticText136;
+ wxToggleButton* m_toggleBtnGdrive;
+ wxToggleButton* m_toggleBtnSftp;
+ wxToggleButton* m_toggleBtnFtp;
+ wxStaticLine* m_staticline371;
+ wxPanel* m_panel41;
+ wxBoxSizer* bSizerGdrive;
+ wxStaticBitmap* m_bitmapGdriveUser;
+ wxStaticText* m_staticText166;
+ wxListBox* m_listBoxGdriveUsers;
+ zen::BitmapTextButton* m_buttonGdriveAddUser;
+ zen::BitmapTextButton* m_buttonGdriveRemoveUser;
+ wxStaticLine* m_staticline841;
+ wxStaticBitmap* m_bitmapGdriveDrive;
+ wxStaticText* m_staticText186;
+ wxListBox* m_listBoxGdriveDrives;
+ wxStaticLine* m_staticline73;
+ wxBoxSizer* bSizerServer;
+ wxStaticBitmap* m_bitmapServer;
+ wxStaticText* m_staticText12311;
+ wxTextCtrl* m_textCtrlServer;
+ wxStaticText* m_staticText1233;
+ wxTextCtrl* m_textCtrlPort;
+ wxStaticLine* m_staticline58;
+ wxBoxSizer* bSizerAuth;
+ wxBoxSizer* bSizerAuthInner;
+ wxBoxSizer* bSizerFtpEncrypt;
+ wxStaticText* m_staticText1251;
+ wxRadioButton* m_radioBtnEncryptNone;
+ wxRadioButton* m_radioBtnEncryptSsl;
+ wxStaticLine* m_staticline5721;
+ wxBoxSizer* bSizerSftpAuth;
+ wxStaticText* m_staticText125;
+ wxRadioButton* m_radioBtnPassword;
+ wxRadioButton* m_radioBtnKeyfile;
+ wxRadioButton* m_radioBtnAgent;
+ wxStaticLine* m_staticline572;
+ wxPanel* m_panelAuth;
+ wxStaticText* m_staticText123;
+ wxTextCtrl* m_textCtrlUserName;
+ wxStaticText* m_staticTextKeyfile;
+ wxBoxSizer* bSizerKeyFile;
+ wxTextCtrl* m_textCtrlKeyfilePath;
+ wxButton* m_buttonSelectKeyfile;
+ wxStaticText* m_staticTextPassword;
+ wxBoxSizer* bSizerPassword;
+ wxTextCtrl* m_textCtrlPasswordVisible;
+ wxTextCtrl* m_textCtrlPasswordHidden;
+ wxCheckBox* m_checkBoxShowPassword;
+ wxStaticLine* m_staticline581;
+ wxStaticBitmap* m_bitmapServerDir;
+ wxStaticText* m_staticText1232;
+ wxTextCtrl* m_textCtrlServerPath;
+ wxButton* m_buttonSelectFolder;
+ wxBoxSizer* bSizerAccessTimeout;
+ wxStaticText* m_staticTextTimeout;
+ wxSpinCtrl* m_spinCtrlTimeout;
+ wxStaticLine* m_staticline571;
+ wxStaticBitmap* m_bitmapPerf;
+ wxStaticText* m_staticText1361;
+ wxHyperlinkCtrl* m_hyperlink171;
+ wxStaticLine* m_staticline57;
+ wxPanel* m_panel411;
+ wxBoxSizer* bSizerConnectionsLabel;
+ wxStaticText* m_staticTextConnectionsLabel;
+ wxStaticText* m_staticTextConnectionsLabelSub;
+ wxSpinCtrl* m_spinCtrlConnectionCount;
+ wxStaticText* m_staticTextConnectionCountDescr;
+ wxHyperlinkCtrl* m_hyperlinkDeRequired;
+ wxStaticText* m_staticTextChannelCountSftp;
+ wxSpinCtrl* m_spinCtrlChannelCountSftp;
+ wxButton* m_buttonChannelCountSftp;
+ wxCheckBox* m_checkBoxAllowZlib;
+ wxStaticText* m_staticTextZlibDescr;
+ wxStaticLine* m_staticline12;
+ wxBoxSizer* bSizerStdButtons;
+ wxButton* m_buttonOkay;
+ wxButton* m_buttonCancel;
+
+ // Virtual event handlers, override them in your derived class
+ virtual void onClose( wxCloseEvent& event ) { event.Skip(); }
+ virtual void onConnectionGdrive( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onConnectionSftp( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onConnectionFtp( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onGdriveUserSelect( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onGdriveUserAdd( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onGdriveUserRemove( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onAuthPassword( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onAuthKeyfile( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onAuthAgent( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onSelectKeyfile( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onToggleShowPassword( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onBrowseCloudFolder( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onDetectServerChannelLimit( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onOkay( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onCancel( wxCommandEvent& event ) { event.Skip(); }
+
+
+ public:
+
+ CloudSetupDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Access Online Storage"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
+
+ ~CloudSetupDlgGenerated();
};
@@ -674,29 +675,29 @@ public:
///////////////////////////////////////////////////////////////////////////////
class AbstractFolderPickerGenerated : public wxDialog
{
-private:
+ private:
-protected:
- wxPanel* m_panel41;
- wxStaticText* m_staticTextStatus;
- wxTreeCtrl* m_treeCtrlFileSystem;
- wxStaticLine* m_staticline12;
- wxBoxSizer* bSizerStdButtons;
- wxButton* m_buttonOkay;
- wxButton* m_buttonCancel;
+ protected:
+ wxPanel* m_panel41;
+ wxStaticText* m_staticTextStatus;
+ wxTreeCtrl* m_treeCtrlFileSystem;
+ wxStaticLine* m_staticline12;
+ wxBoxSizer* bSizerStdButtons;
+ wxButton* m_buttonOkay;
+ wxButton* m_buttonCancel;
- // Virtual event handlers, override them in your derived class
- virtual void onClose( wxCloseEvent& event ) { event.Skip(); }
- virtual void onExpandNode( wxTreeEvent& event ) { event.Skip(); }
- virtual void onOkay( wxCommandEvent& event ) { event.Skip(); }
- virtual void onCancel( wxCommandEvent& event ) { event.Skip(); }
+ // Virtual event handlers, override them in your derived class
+ virtual void onClose( wxCloseEvent& event ) { event.Skip(); }
+ virtual void onExpandNode( wxTreeEvent& event ) { event.Skip(); }
+ virtual void onOkay( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onCancel( wxCommandEvent& event ) { event.Skip(); }
-public:
+ public:
- AbstractFolderPickerGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Select a folder"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1, -1 ), long style = wxDEFAULT_DIALOG_STYLE|wxMAXIMIZE_BOX|wxRESIZE_BORDER );
+ AbstractFolderPickerGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Select a folder"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxMAXIMIZE_BOX|wxRESIZE_BORDER );
- ~AbstractFolderPickerGenerated();
+ ~AbstractFolderPickerGenerated();
};
@@ -705,51 +706,51 @@ public:
///////////////////////////////////////////////////////////////////////////////
class SyncConfirmationDlgGenerated : public wxDialog
{
-private:
-
-protected:
- wxStaticBitmap* m_bitmapSync;
- wxStaticText* m_staticTextCaption;
- wxStaticLine* m_staticline371;
- wxPanel* m_panelStatistics;
- wxStaticLine* m_staticline38;
- wxStaticText* m_staticText84;
- wxStaticText* m_staticTextSyncVar;
- wxStaticBitmap* m_bitmapSyncVar;
- wxStaticLine* m_staticline14;
- wxStaticText* m_staticText83;
- wxStaticBitmap* m_bitmapDeleteLeft;
- wxStaticBitmap* m_bitmapUpdateLeft;
- wxStaticBitmap* m_bitmapCreateLeft;
- wxStaticBitmap* m_bitmapData;
- wxStaticBitmap* m_bitmapCreateRight;
- wxStaticBitmap* m_bitmapUpdateRight;
- wxStaticBitmap* m_bitmapDeleteRight;
- wxStaticText* m_staticTextDeleteLeft;
- wxStaticText* m_staticTextUpdateLeft;
- wxStaticText* m_staticTextCreateLeft;
- wxStaticText* m_staticTextData;
- wxStaticText* m_staticTextCreateRight;
- wxStaticText* m_staticTextUpdateRight;
- wxStaticText* m_staticTextDeleteRight;
- wxStaticLine* m_staticline381;
- wxStaticLine* m_staticline12;
- wxCheckBox* m_checkBoxDontShowAgain;
- wxBoxSizer* bSizerStdButtons;
- wxButton* m_buttonStartSync;
- wxButton* m_buttonCancel;
-
- // Virtual event handlers, override them in your derived class
- virtual void onClose( wxCloseEvent& event ) { event.Skip(); }
- virtual void onStartSync( wxCommandEvent& event ) { event.Skip(); }
- virtual void onCancel( wxCommandEvent& event ) { event.Skip(); }
-
-
-public:
-
- SyncConfirmationDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE );
-
- ~SyncConfirmationDlgGenerated();
+ private:
+
+ protected:
+ wxStaticBitmap* m_bitmapSync;
+ wxStaticText* m_staticTextCaption;
+ wxStaticLine* m_staticline371;
+ wxPanel* m_panelStatistics;
+ wxStaticLine* m_staticline38;
+ wxStaticText* m_staticText84;
+ wxStaticText* m_staticTextSyncVar;
+ wxStaticBitmap* m_bitmapSyncVar;
+ wxStaticLine* m_staticline14;
+ wxStaticText* m_staticText83;
+ wxStaticBitmap* m_bitmapDeleteLeft;
+ wxStaticBitmap* m_bitmapUpdateLeft;
+ wxStaticBitmap* m_bitmapCreateLeft;
+ wxStaticBitmap* m_bitmapData;
+ wxStaticBitmap* m_bitmapCreateRight;
+ wxStaticBitmap* m_bitmapUpdateRight;
+ wxStaticBitmap* m_bitmapDeleteRight;
+ wxStaticText* m_staticTextDeleteLeft;
+ wxStaticText* m_staticTextUpdateLeft;
+ wxStaticText* m_staticTextCreateLeft;
+ wxStaticText* m_staticTextData;
+ wxStaticText* m_staticTextCreateRight;
+ wxStaticText* m_staticTextUpdateRight;
+ wxStaticText* m_staticTextDeleteRight;
+ wxStaticLine* m_staticline381;
+ wxStaticLine* m_staticline12;
+ wxCheckBox* m_checkBoxDontShowAgain;
+ wxBoxSizer* bSizerStdButtons;
+ wxButton* m_buttonStartSync;
+ wxButton* m_buttonCancel;
+
+ // Virtual event handlers, override them in your derived class
+ virtual void onClose( wxCloseEvent& event ) { event.Skip(); }
+ virtual void onStartSync( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onCancel( wxCommandEvent& event ) { event.Skip(); }
+
+
+ public:
+
+ SyncConfirmationDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE );
+
+ ~SyncConfirmationDlgGenerated();
};
@@ -758,41 +759,41 @@ public:
///////////////////////////////////////////////////////////////////////////////
class CompareProgressDlgGenerated : public wxPanel
{
-private:
-
-protected:
- wxStaticText* m_staticTextStatus;
- wxFlexGridSizer* ffgSizer11;
- wxFlexGridSizer* ffgSizer111;
- wxFlexGridSizer* ffgSizer112;
- wxStaticText* m_staticText1461;
- wxStaticText* m_staticTextRetryCount;
- wxStaticText* m_staticText146;
- wxBoxSizer* bSizerProgressGraph;
- wxFlexGridSizer* ffgSizer113;
- zen::Graph2D* m_panelProgressGraph;
-
-public:
- wxStaticText* m_staticTextProcessed;
- wxStaticText* m_staticTextRemaining;
- wxPanel* m_panelItemStats;
- wxStaticBitmap* m_bitmapItemStat;
- wxStaticText* m_staticTextItemsProcessed;
- wxStaticText* m_staticTextBytesProcessed;
- wxStaticText* m_staticTextItemsRemaining;
- wxStaticText* m_staticTextBytesRemaining;
- wxPanel* m_panelTimeStats;
- wxStaticBitmap* m_bitmapTimeStat;
- wxStaticText* m_staticTextTimeElapsed;
- wxStaticText* m_staticTextTimeRemaining;
- wxBoxSizer* bSizerErrorsRetry;
- wxStaticBitmap* m_bitmapRetryErrors;
- wxBoxSizer* bSizerErrorsIgnore;
- wxStaticBitmap* m_bitmapIgnoreErrors;
-
- CompareProgressDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1, -1 ), long style = wxBORDER_RAISED, const wxString& name = wxEmptyString );
-
- ~CompareProgressDlgGenerated();
+ private:
+
+ protected:
+ wxStaticText* m_staticTextStatus;
+ wxFlexGridSizer* ffgSizer11;
+ wxFlexGridSizer* ffgSizer111;
+ wxFlexGridSizer* ffgSizer112;
+ wxStaticText* m_staticText1461;
+ wxStaticText* m_staticTextRetryCount;
+ wxStaticText* m_staticText146;
+ wxBoxSizer* bSizerProgressGraph;
+ wxFlexGridSizer* ffgSizer113;
+ zen::Graph2D* m_panelProgressGraph;
+
+ public:
+ wxStaticText* m_staticTextProcessed;
+ wxStaticText* m_staticTextRemaining;
+ wxPanel* m_panelItemStats;
+ wxStaticBitmap* m_bitmapItemStat;
+ wxStaticText* m_staticTextItemsProcessed;
+ wxStaticText* m_staticTextBytesProcessed;
+ wxStaticText* m_staticTextItemsRemaining;
+ wxStaticText* m_staticTextBytesRemaining;
+ wxPanel* m_panelTimeStats;
+ wxStaticBitmap* m_bitmapTimeStat;
+ wxStaticText* m_staticTextTimeElapsed;
+ wxStaticText* m_staticTextTimeRemaining;
+ wxBoxSizer* bSizerErrorsRetry;
+ wxStaticBitmap* m_bitmapRetryErrors;
+ wxBoxSizer* bSizerErrorsIgnore;
+ wxStaticBitmap* m_bitmapIgnoreErrors;
+
+ CompareProgressDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxBORDER_RAISED, const wxString& name = wxEmptyString );
+
+ ~CompareProgressDlgGenerated();
};
@@ -801,61 +802,61 @@ public:
///////////////////////////////////////////////////////////////////////////////
class SyncProgressPanelGenerated : public wxPanel
{
-private:
-
-protected:
- wxPanel* m_panel53;
- wxBoxSizer* bSizer42;
- wxFlexGridSizer* ffgSizer11;
- wxFlexGridSizer* ffgSizer111;
- wxFlexGridSizer* ffgSizer112;
- wxStaticText* m_staticText1461;
- wxStaticText* m_staticText146;
- wxStaticText* m_staticText137;
-
-public:
- wxBoxSizer* bSizerRoot;
- wxStaticBitmap* m_bitmapStatus;
- wxStaticText* m_staticTextPhase;
- wxBitmapButton* m_bpButtonMinimizeToTray;
- wxBoxSizer* bSizerStatusText;
- wxStaticText* m_staticTextStatus;
- wxPanel* m_panelProgress;
- zen::Graph2D* m_panelGraphBytes;
- wxStaticBitmap* m_bitmapGraphKeyBytes;
- wxStaticBitmap* m_bitmapGraphKeyItems;
- wxStaticText* m_staticTextProcessed;
- wxStaticText* m_staticTextRemaining;
- wxPanel* m_panelItemStats;
- wxStaticBitmap* m_bitmapItemStat;
- wxStaticText* m_staticTextItemsProcessed;
- wxStaticText* m_staticTextBytesProcessed;
- wxStaticText* m_staticTextItemsRemaining;
- wxStaticText* m_staticTextBytesRemaining;
- wxPanel* m_panelTimeStats;
- wxStaticBitmap* m_bitmapTimeStat;
- wxStaticText* m_staticTextTimeElapsed;
- wxStaticText* m_staticTextTimeRemaining;
- wxBoxSizer* bSizerDynSpace;
- zen::Graph2D* m_panelGraphItems;
- wxBoxSizer* bSizerProgressFooter;
- wxBoxSizer* bSizerErrorsRetry;
- wxStaticBitmap* m_bitmapRetryErrors;
- wxStaticText* m_staticTextRetryCount;
- wxBoxSizer* bSizerErrorsIgnore;
- wxStaticBitmap* m_bitmapIgnoreErrors;
- wxChoice* m_choicePostSyncAction;
- wxNotebook* m_notebookResult;
- wxStaticLine* m_staticlineFooter;
- wxBoxSizer* bSizerStdButtons;
- wxCheckBox* m_checkBoxAutoClose;
- wxButton* m_buttonClose;
- wxButton* m_buttonPause;
- wxButton* m_buttonStop;
-
- SyncProgressPanelGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1, -1 ), long style = wxTAB_TRAVERSAL, const wxString& name = wxEmptyString );
-
- ~SyncProgressPanelGenerated();
+ private:
+
+ protected:
+ wxPanel* m_panel53;
+ wxBoxSizer* bSizer42;
+ wxFlexGridSizer* ffgSizer11;
+ wxFlexGridSizer* ffgSizer111;
+ wxFlexGridSizer* ffgSizer112;
+ wxStaticText* m_staticText1461;
+ wxStaticText* m_staticText146;
+ wxStaticText* m_staticText137;
+
+ public:
+ wxBoxSizer* bSizerRoot;
+ wxStaticBitmap* m_bitmapStatus;
+ wxStaticText* m_staticTextPhase;
+ wxBitmapButton* m_bpButtonMinimizeToTray;
+ wxBoxSizer* bSizerStatusText;
+ wxStaticText* m_staticTextStatus;
+ wxPanel* m_panelProgress;
+ zen::Graph2D* m_panelGraphBytes;
+ wxStaticBitmap* m_bitmapGraphKeyBytes;
+ wxStaticBitmap* m_bitmapGraphKeyItems;
+ wxStaticText* m_staticTextProcessed;
+ wxStaticText* m_staticTextRemaining;
+ wxPanel* m_panelItemStats;
+ wxStaticBitmap* m_bitmapItemStat;
+ wxStaticText* m_staticTextItemsProcessed;
+ wxStaticText* m_staticTextBytesProcessed;
+ wxStaticText* m_staticTextItemsRemaining;
+ wxStaticText* m_staticTextBytesRemaining;
+ wxPanel* m_panelTimeStats;
+ wxStaticBitmap* m_bitmapTimeStat;
+ wxStaticText* m_staticTextTimeElapsed;
+ wxStaticText* m_staticTextTimeRemaining;
+ wxBoxSizer* bSizerDynSpace;
+ zen::Graph2D* m_panelGraphItems;
+ wxBoxSizer* bSizerProgressFooter;
+ wxBoxSizer* bSizerErrorsRetry;
+ wxStaticBitmap* m_bitmapRetryErrors;
+ wxStaticText* m_staticTextRetryCount;
+ wxBoxSizer* bSizerErrorsIgnore;
+ wxStaticBitmap* m_bitmapIgnoreErrors;
+ wxChoice* m_choicePostSyncAction;
+ wxNotebook* m_notebookResult;
+ wxStaticLine* m_staticlineFooter;
+ wxBoxSizer* bSizerStdButtons;
+ wxCheckBox* m_checkBoxAutoClose;
+ wxButton* m_buttonClose;
+ wxButton* m_buttonPause;
+ wxButton* m_buttonStop;
+
+ SyncProgressPanelGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxTAB_TRAVERSAL, const wxString& name = wxEmptyString );
+
+ ~SyncProgressPanelGenerated();
};
@@ -864,26 +865,26 @@ public:
///////////////////////////////////////////////////////////////////////////////
class LogPanelGenerated : public wxPanel
{
-private:
+ private:
-protected:
- zen::ToggleButton* m_bpButtonErrors;
- zen::ToggleButton* m_bpButtonWarnings;
- zen::ToggleButton* m_bpButtonInfo;
- wxStaticLine* m_staticline13;
+ protected:
+ zen::ToggleButton* m_bpButtonErrors;
+ zen::ToggleButton* m_bpButtonWarnings;
+ zen::ToggleButton* m_bpButtonInfo;
+ wxStaticLine* m_staticline13;
- // Virtual event handlers, override 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(); }
+ // Virtual event handlers, override 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:
- zen::Grid* m_gridMessages;
+ public:
+ zen::Grid* m_gridMessages;
- LogPanelGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxTAB_TRAVERSAL, const wxString& name = wxEmptyString );
+ LogPanelGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxTAB_TRAVERSAL, const wxString& name = wxEmptyString );
- ~LogPanelGenerated();
+ ~LogPanelGenerated();
};
@@ -892,47 +893,47 @@ public:
///////////////////////////////////////////////////////////////////////////////
class BatchDlgGenerated : public wxDialog
{
-private:
-
-protected:
- wxStaticBitmap* m_bitmapBatchJob;
- wxStaticText* m_staticTextHeader;
- wxStaticLine* m_staticline18;
- wxPanel* m_panel35;
- wxStaticText* m_staticText146;
- wxFlexGridSizer* ffgSizer11;
- wxStaticBitmap* m_bitmapMinimizeToTray;
- wxCheckBox* m_checkBoxRunMinimized;
- wxStaticLine* m_staticline26;
- wxStaticBitmap* m_bitmapIgnoreErrors;
- wxCheckBox* m_checkBoxIgnoreErrors;
- wxRadioButton* m_radioBtnErrorDialogShow;
- wxRadioButton* m_radioBtnErrorDialogCancel;
- wxStaticLine* m_staticline261;
- wxStaticText* m_staticText137;
- wxStaticLine* m_staticline262;
- wxStaticLine* m_staticline25;
- wxHyperlinkCtrl* m_hyperlink17;
- wxStaticLine* m_staticline13;
- wxBoxSizer* bSizerStdButtons;
- wxButton* m_buttonSaveAs;
- wxButton* m_buttonCancel;
-
- // Virtual event handlers, override them in your derived class
- virtual void onClose( wxCloseEvent& event ) { event.Skip(); }
- virtual void onToggleRunMinimized( wxCommandEvent& event ) { event.Skip(); }
- virtual void onToggleIgnoreErrors( wxCommandEvent& event ) { event.Skip(); }
- virtual void onSaveBatchJob( wxCommandEvent& event ) { event.Skip(); }
- virtual void onCancel( wxCommandEvent& event ) { event.Skip(); }
-
-
-public:
- wxCheckBox* m_checkBoxAutoClose;
- wxChoice* m_choicePostSyncAction;
-
- BatchDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Save as a Batch Job"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
-
- ~BatchDlgGenerated();
+ private:
+
+ protected:
+ wxStaticBitmap* m_bitmapBatchJob;
+ wxStaticText* m_staticTextHeader;
+ wxStaticLine* m_staticline18;
+ wxPanel* m_panel35;
+ wxStaticText* m_staticText146;
+ wxFlexGridSizer* ffgSizer11;
+ wxStaticBitmap* m_bitmapMinimizeToTray;
+ wxCheckBox* m_checkBoxRunMinimized;
+ wxStaticLine* m_staticline26;
+ wxStaticBitmap* m_bitmapIgnoreErrors;
+ wxCheckBox* m_checkBoxIgnoreErrors;
+ wxRadioButton* m_radioBtnErrorDialogShow;
+ wxRadioButton* m_radioBtnErrorDialogCancel;
+ wxStaticLine* m_staticline261;
+ wxStaticText* m_staticText137;
+ wxStaticLine* m_staticline262;
+ wxStaticLine* m_staticline25;
+ wxHyperlinkCtrl* m_hyperlink17;
+ wxStaticLine* m_staticline13;
+ wxBoxSizer* bSizerStdButtons;
+ wxButton* m_buttonSaveAs;
+ wxButton* m_buttonCancel;
+
+ // Virtual event handlers, override them in your derived class
+ virtual void onClose( wxCloseEvent& event ) { event.Skip(); }
+ virtual void onToggleRunMinimized( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onToggleIgnoreErrors( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onSaveBatchJob( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onCancel( wxCommandEvent& event ) { event.Skip(); }
+
+
+ public:
+ wxCheckBox* m_checkBoxAutoClose;
+ wxChoice* m_choicePostSyncAction;
+
+ BatchDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Save as a Batch Job"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
+
+ ~BatchDlgGenerated();
};
@@ -941,33 +942,33 @@ public:
///////////////////////////////////////////////////////////////////////////////
class DeleteDlgGenerated : public wxDialog
{
-private:
+ private:
-protected:
- wxStaticBitmap* m_bitmapDeleteType;
- wxStaticText* m_staticTextHeader;
- wxStaticLine* m_staticline91;
- wxPanel* m_panel31;
- wxStaticLine* m_staticline42;
- wxTextCtrl* m_textCtrlFileList;
- wxStaticLine* m_staticline9;
- wxBoxSizer* bSizerStdButtons;
- wxCheckBox* m_checkBoxUseRecycler;
- wxButton* m_buttonOK;
- wxButton* m_buttonCancel;
+ protected:
+ wxStaticBitmap* m_bitmapDeleteType;
+ wxStaticText* m_staticTextHeader;
+ wxStaticLine* m_staticline91;
+ wxPanel* m_panel31;
+ wxStaticLine* m_staticline42;
+ wxTextCtrl* m_textCtrlFileList;
+ wxStaticLine* m_staticline9;
+ wxBoxSizer* bSizerStdButtons;
+ wxCheckBox* m_checkBoxUseRecycler;
+ wxButton* m_buttonOK;
+ wxButton* m_buttonCancel;
- // Virtual event handlers, override them in your derived class
- virtual void onClose( wxCloseEvent& event ) { event.Skip(); }
- virtual void onUseRecycler( wxCommandEvent& event ) { event.Skip(); }
- virtual void onOkay( wxCommandEvent& event ) { event.Skip(); }
- virtual void onCancel( wxCommandEvent& event ) { event.Skip(); }
+ // Virtual event handlers, override them in your derived class
+ virtual void onClose( wxCloseEvent& event ) { event.Skip(); }
+ virtual void onUseRecycler( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onOkay( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onCancel( wxCommandEvent& event ) { event.Skip(); }
-public:
+ public:
- DeleteDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Delete Items"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1, -1 ), long style = wxDEFAULT_DIALOG_STYLE|wxMAXIMIZE_BOX|wxRESIZE_BORDER );
+ DeleteDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Delete Items"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxMAXIMIZE_BOX|wxRESIZE_BORDER );
- ~DeleteDlgGenerated();
+ ~DeleteDlgGenerated();
};
@@ -976,36 +977,36 @@ public:
///////////////////////////////////////////////////////////////////////////////
class CopyToDlgGenerated : public wxDialog
{
-private:
+ private:
-protected:
- wxStaticBitmap* m_bitmapCopyTo;
- wxStaticText* m_staticTextHeader;
- wxStaticLine* m_staticline91;
- wxPanel* m_panel31;
- wxStaticLine* m_staticline42;
- wxTextCtrl* m_textCtrlFileList;
- wxButton* m_buttonSelectTargetFolder;
- wxStaticLine* m_staticline9;
- wxBoxSizer* bSizerStdButtons;
- wxCheckBox* m_checkBoxKeepRelPath;
- wxCheckBox* m_checkBoxOverwriteIfExists;
- wxButton* m_buttonOK;
- wxButton* m_buttonCancel;
+ protected:
+ wxStaticBitmap* m_bitmapCopyTo;
+ wxStaticText* m_staticTextHeader;
+ wxStaticLine* m_staticline91;
+ wxPanel* m_panel31;
+ wxStaticLine* m_staticline42;
+ wxTextCtrl* m_textCtrlFileList;
+ wxButton* m_buttonSelectTargetFolder;
+ wxStaticLine* m_staticline9;
+ wxBoxSizer* bSizerStdButtons;
+ wxCheckBox* m_checkBoxKeepRelPath;
+ wxCheckBox* m_checkBoxOverwriteIfExists;
+ wxButton* m_buttonOK;
+ wxButton* m_buttonCancel;
- // Virtual event handlers, override them in your derived class
- virtual void onClose( wxCloseEvent& event ) { event.Skip(); }
- virtual void onOkay( wxCommandEvent& event ) { event.Skip(); }
- virtual void onCancel( wxCommandEvent& event ) { event.Skip(); }
+ // Virtual event handlers, override them in your derived class
+ virtual void onClose( wxCloseEvent& event ) { event.Skip(); }
+ virtual void onOkay( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onCancel( wxCommandEvent& event ) { event.Skip(); }
-public:
- fff::FolderHistoryBox* m_targetFolderPath;
- wxBitmapButton* m_bpButtonSelectAltTargetFolder;
+ public:
+ fff::FolderHistoryBox* m_targetFolderPath;
+ wxBitmapButton* m_bpButtonSelectAltTargetFolder;
- CopyToDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Copy Items"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1, -1 ), long style = wxDEFAULT_DIALOG_STYLE|wxMAXIMIZE_BOX|wxRESIZE_BORDER );
+ CopyToDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Copy Items"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxMAXIMIZE_BOX|wxRESIZE_BORDER );
- ~CopyToDlgGenerated();
+ ~CopyToDlgGenerated();
};
@@ -1014,107 +1015,107 @@ public:
///////////////////////////////////////////////////////////////////////////////
class OptionsDlgGenerated : public wxDialog
{
-private:
-
-protected:
- wxStaticBitmap* m_bitmapSettings;
- wxStaticText* m_staticText44;
- wxStaticLine* m_staticline20;
- wxPanel* m_panel39;
- wxCheckBox* m_checkBoxFailSafe;
- wxStaticText* m_staticText911;
- wxStaticText* m_staticText91;
- wxStaticText* m_staticText9111;
- wxBoxSizer* bSizerLockedFiles;
- wxCheckBox* m_checkBoxCopyLocked;
- wxStaticText* m_staticText921;
- wxStaticText* m_staticText92;
- wxStaticText* m_staticText922;
- wxCheckBox* m_checkBoxCopyPermissions;
- wxStaticText* m_staticText931;
- wxStaticText* m_staticText93;
- wxStaticText* m_staticText932;
- wxStaticLine* m_staticline39;
- wxStaticBitmap* m_bitmapWarnings;
- wxStaticText* m_staticTextResetDialogs;
- wxButton* m_buttonRestoreDialogs;
- wxStaticText* m_staticTextAllDialogsShown;
- wxStaticLine* m_staticline191;
- wxStaticBitmap* m_bitmapLogFile;
- wxStaticText* m_staticText163;
- wxHyperlinkCtrl* m_hyperlinkLogFolder;
- wxStaticLine* m_staticline83;
- wxStaticLine* m_staticline82;
- wxCheckBox* m_checkBoxLogFilesMaxAge;
- wxSpinCtrl* m_spinCtrlLogFilesMaxAge;
- wxStaticLine* m_staticline81;
- wxStaticText* m_staticText184;
- wxRadioButton* m_radioBtnLogHtml;
- wxRadioButton* m_radioBtnLogText;
- wxStaticLine* m_staticline361;
- wxStaticBitmap* m_bitmapNotificationSounds;
- wxStaticText* m_staticText851;
- wxFlexGridSizer* ffgSizer11;
- wxStaticBitmap* m_bitmapCompareDone;
- wxStaticText* m_staticText171;
- wxBitmapButton* m_bpButtonPlayCompareDone;
- wxTextCtrl* m_textCtrlSoundPathCompareDone;
- wxButton* m_buttonSelectSoundCompareDone;
- wxStaticBitmap* m_bitmapSyncDone;
- wxStaticText* m_staticText1711;
- wxBitmapButton* m_bpButtonPlaySyncDone;
- wxTextCtrl* m_textCtrlSoundPathSyncDone;
- wxButton* m_buttonSelectSoundSyncDone;
- wxStaticBitmap* m_bitmapAlertPending;
- wxStaticText* m_staticText17111;
- wxBitmapButton* m_bpButtonPlayAlertPending;
- wxTextCtrl* m_textCtrlSoundPathAlertPending;
- wxButton* m_buttonSelectSoundAlertPending;
- wxStaticLine* m_staticline3611;
- wxStaticBitmap* m_bitmapConsole;
- wxStaticText* m_staticText85;
- wxBitmapButton* m_bpButtonAddRow;
- wxBitmapButton* m_bpButtonRemoveRow;
- wxStaticText* m_staticText174;
- wxStaticText* m_staticText175;
- wxStaticText* m_staticText178;
- wxStaticText* m_staticText179;
- wxStaticText* m_staticText189;
- wxStaticText* m_staticText190;
- wxStaticText* m_staticText176;
- wxStaticText* m_staticText177;
- wxHyperlinkCtrl* m_hyperlink17;
- wxGrid* m_gridCustomCommand;
- wxStaticLine* m_staticline36;
- wxBoxSizer* bSizerStdButtons;
- wxButton* m_buttonDefault;
- wxButton* m_buttonOkay;
- wxButton* m_buttonCancel;
-
- // Virtual event handlers, override them in your derived class
- virtual void onClose( wxCloseEvent& event ) { event.Skip(); }
- virtual void onRestoreDialogs( wxCommandEvent& event ) { event.Skip(); }
- virtual void onShowLogFolder( wxHyperlinkEvent& event ) { event.Skip(); }
- virtual void onToggleLogfilesLimit( wxCommandEvent& event ) { event.Skip(); }
- virtual void onPlayCompareDone( wxCommandEvent& event ) { event.Skip(); }
- virtual void onChangeSoundFilePath( wxCommandEvent& event ) { event.Skip(); }
- virtual void onSelectSoundCompareDone( wxCommandEvent& event ) { event.Skip(); }
- virtual void onPlaySyncDone( wxCommandEvent& event ) { event.Skip(); }
- virtual void onSelectSoundSyncDone( wxCommandEvent& event ) { event.Skip(); }
- virtual void onPlayAlertPending( wxCommandEvent& event ) { event.Skip(); }
- virtual void onSelectSoundAlertPending( 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:
-
- OptionsDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Options"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
-
- ~OptionsDlgGenerated();
+ private:
+
+ protected:
+ wxStaticBitmap* m_bitmapSettings;
+ wxStaticText* m_staticText44;
+ wxStaticLine* m_staticline20;
+ wxPanel* m_panel39;
+ wxCheckBox* m_checkBoxFailSafe;
+ wxStaticText* m_staticText911;
+ wxStaticText* m_staticText91;
+ wxStaticText* m_staticText9111;
+ wxBoxSizer* bSizerLockedFiles;
+ wxCheckBox* m_checkBoxCopyLocked;
+ wxStaticText* m_staticText921;
+ wxStaticText* m_staticText92;
+ wxStaticText* m_staticText922;
+ wxCheckBox* m_checkBoxCopyPermissions;
+ wxStaticText* m_staticText931;
+ wxStaticText* m_staticText93;
+ wxStaticText* m_staticText932;
+ wxStaticLine* m_staticline39;
+ wxStaticBitmap* m_bitmapWarnings;
+ wxStaticText* m_staticTextResetDialogs;
+ wxButton* m_buttonRestoreDialogs;
+ wxStaticText* m_staticTextAllDialogsShown;
+ wxStaticLine* m_staticline191;
+ wxStaticBitmap* m_bitmapLogFile;
+ wxStaticText* m_staticText163;
+ wxHyperlinkCtrl* m_hyperlinkLogFolder;
+ wxStaticLine* m_staticline83;
+ wxStaticLine* m_staticline82;
+ wxCheckBox* m_checkBoxLogFilesMaxAge;
+ wxSpinCtrl* m_spinCtrlLogFilesMaxAge;
+ wxStaticLine* m_staticline81;
+ wxStaticText* m_staticText184;
+ wxRadioButton* m_radioBtnLogHtml;
+ wxRadioButton* m_radioBtnLogText;
+ wxStaticLine* m_staticline361;
+ wxStaticBitmap* m_bitmapNotificationSounds;
+ wxStaticText* m_staticText851;
+ wxFlexGridSizer* ffgSizer11;
+ wxStaticBitmap* m_bitmapCompareDone;
+ wxStaticText* m_staticText171;
+ wxBitmapButton* m_bpButtonPlayCompareDone;
+ wxTextCtrl* m_textCtrlSoundPathCompareDone;
+ wxButton* m_buttonSelectSoundCompareDone;
+ wxStaticBitmap* m_bitmapSyncDone;
+ wxStaticText* m_staticText1711;
+ wxBitmapButton* m_bpButtonPlaySyncDone;
+ wxTextCtrl* m_textCtrlSoundPathSyncDone;
+ wxButton* m_buttonSelectSoundSyncDone;
+ wxStaticBitmap* m_bitmapAlertPending;
+ wxStaticText* m_staticText17111;
+ wxBitmapButton* m_bpButtonPlayAlertPending;
+ wxTextCtrl* m_textCtrlSoundPathAlertPending;
+ wxButton* m_buttonSelectSoundAlertPending;
+ wxStaticLine* m_staticline3611;
+ wxStaticBitmap* m_bitmapConsole;
+ wxStaticText* m_staticText85;
+ wxBitmapButton* m_bpButtonAddRow;
+ wxBitmapButton* m_bpButtonRemoveRow;
+ wxStaticText* m_staticText174;
+ wxStaticText* m_staticText175;
+ wxStaticText* m_staticText178;
+ wxStaticText* m_staticText179;
+ wxStaticText* m_staticText189;
+ wxStaticText* m_staticText190;
+ wxStaticText* m_staticText176;
+ wxStaticText* m_staticText177;
+ wxHyperlinkCtrl* m_hyperlink17;
+ wxGrid* m_gridCustomCommand;
+ wxStaticLine* m_staticline36;
+ wxBoxSizer* bSizerStdButtons;
+ wxButton* m_buttonDefault;
+ wxButton* m_buttonOkay;
+ wxButton* m_buttonCancel;
+
+ // Virtual event handlers, override them in your derived class
+ virtual void onClose( wxCloseEvent& event ) { event.Skip(); }
+ virtual void onRestoreDialogs( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onShowLogFolder( wxHyperlinkEvent& event ) { event.Skip(); }
+ virtual void onToggleLogfilesLimit( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onPlayCompareDone( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onChangeSoundFilePath( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onSelectSoundCompareDone( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onPlaySyncDone( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onSelectSoundSyncDone( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onPlayAlertPending( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onSelectSoundAlertPending( 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:
+
+ OptionsDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Options"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
+
+ ~OptionsDlgGenerated();
};
@@ -1123,17 +1124,17 @@ public:
///////////////////////////////////////////////////////////////////////////////
class TooltipDlgGenerated : public wxDialog
{
-private:
+ private:
-protected:
+ protected:
-public:
- wxStaticBitmap* m_bitmapLeft;
- wxStaticText* m_staticTextMain;
+ public:
+ wxStaticBitmap* m_bitmapLeft;
+ wxStaticText* m_staticTextMain;
- TooltipDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE );
+ TooltipDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE );
- ~TooltipDlgGenerated();
+ ~TooltipDlgGenerated();
};
@@ -1142,30 +1143,30 @@ public:
///////////////////////////////////////////////////////////////////////////////
class SelectTimespanDlgGenerated : public wxDialog
{
-private:
+ private:
-protected:
- wxPanel* m_panel35;
- wxCalendarCtrl* m_calendarFrom;
- wxCalendarCtrl* m_calendarTo;
- wxStaticLine* m_staticline21;
- wxBoxSizer* bSizerStdButtons;
- wxButton* m_buttonOkay;
- wxButton* m_buttonCancel;
+ protected:
+ wxPanel* m_panel35;
+ wxCalendarCtrl* m_calendarFrom;
+ wxCalendarCtrl* m_calendarTo;
+ wxStaticLine* m_staticline21;
+ wxBoxSizer* bSizerStdButtons;
+ wxButton* m_buttonOkay;
+ wxButton* m_buttonCancel;
- // Virtual event handlers, override 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(); }
+ // Virtual event handlers, override 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:
+ 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( 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();
+ ~SelectTimespanDlgGenerated();
};
@@ -1174,61 +1175,61 @@ public:
///////////////////////////////////////////////////////////////////////////////
class AboutDlgGenerated : public wxDialog
{
-private:
-
-protected:
- wxPanel* m_panel41;
- wxStaticBitmap* m_bitmapLogoLeft;
- wxStaticLine* m_staticline81;
- wxBoxSizer* bSizerMainSection;
- wxStaticLine* m_staticline82;
- wxStaticBitmap* m_bitmapLogo;
- wxStaticLine* m_staticline341;
- wxStaticText* m_staticTextVersion;
- wxStaticLine* m_staticline3411;
- wxPanel* m_panelDonate;
- wxPanel* m_panel39;
- wxStaticBitmap* m_bitmapDonate;
- wxStaticText* m_staticTextDonate;
- wxButton* m_buttonDonate;
- wxPanel* m_panelThankYou;
- wxPanel* m_panel391;
- wxStaticBitmap* m_bitmapThanks;
- wxStaticText* m_staticTextThanks;
- wxStaticText* m_staticTextNoAutoUpdate;
- wxButton* m_buttonShowDonationDetails;
- wxStaticLine* m_staticline3412;
- wxStaticText* m_staticText94;
- wxBitmapButton* m_bpButtonForum;
- wxBitmapButton* m_bpButtonHomepage;
- wxBitmapButton* m_bpButtonEmail;
- wxStaticLine* m_staticline34;
- wxStaticText* m_staticTextGpl;
- wxBitmapButton* m_bpButtonGpl;
- wxStaticLine* m_staticline37;
- wxStaticText* m_staticTextThanksForLoc;
- wxScrolledWindow* m_scrolledWindowTranslators;
- wxFlexGridSizer* fgSizerTranslators;
- wxStaticLine* m_staticline36;
- wxBoxSizer* bSizerStdButtons;
- wxButton* m_buttonClose;
-
- // Virtual event handlers, override them in your derived class
- virtual void onClose( wxCloseEvent& event ) { event.Skip(); }
- virtual void onDonate( wxCommandEvent& event ) { event.Skip(); }
- virtual void onShowDonationDetails( wxCommandEvent& event ) { event.Skip(); }
- virtual void onOpenForum( wxCommandEvent& event ) { event.Skip(); }
- virtual void onOpenHomepage( wxCommandEvent& event ) { event.Skip(); }
- virtual void onSendEmail( wxCommandEvent& event ) { event.Skip(); }
- virtual void onShowGpl( wxCommandEvent& event ) { event.Skip(); }
- virtual void onOkay( wxCommandEvent& event ) { event.Skip(); }
-
-
-public:
-
- AboutDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("About"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE );
-
- ~AboutDlgGenerated();
+ private:
+
+ protected:
+ wxPanel* m_panel41;
+ wxStaticBitmap* m_bitmapLogoLeft;
+ wxStaticLine* m_staticline81;
+ wxBoxSizer* bSizerMainSection;
+ wxStaticLine* m_staticline82;
+ wxStaticBitmap* m_bitmapLogo;
+ wxStaticLine* m_staticline341;
+ wxStaticText* m_staticTextVersion;
+ wxStaticLine* m_staticline3411;
+ wxPanel* m_panelDonate;
+ wxPanel* m_panel39;
+ wxStaticBitmap* m_bitmapDonate;
+ wxStaticText* m_staticTextDonate;
+ wxButton* m_buttonDonate;
+ wxPanel* m_panelThankYou;
+ wxPanel* m_panel391;
+ wxStaticBitmap* m_bitmapThanks;
+ wxStaticText* m_staticTextThanks;
+ wxStaticText* m_staticTextNoAutoUpdate;
+ wxButton* m_buttonShowDonationDetails;
+ wxStaticLine* m_staticline3412;
+ wxStaticText* m_staticText94;
+ wxBitmapButton* m_bpButtonForum;
+ wxBitmapButton* m_bpButtonHomepage;
+ wxBitmapButton* m_bpButtonEmail;
+ wxStaticLine* m_staticline34;
+ wxStaticText* m_staticTextGpl;
+ wxBitmapButton* m_bpButtonGpl;
+ wxStaticLine* m_staticline37;
+ wxStaticText* m_staticTextThanksForLoc;
+ wxScrolledWindow* m_scrolledWindowTranslators;
+ wxFlexGridSizer* fgSizerTranslators;
+ wxStaticLine* m_staticline36;
+ wxBoxSizer* bSizerStdButtons;
+ wxButton* m_buttonClose;
+
+ // Virtual event handlers, override them in your derived class
+ virtual void onClose( wxCloseEvent& event ) { event.Skip(); }
+ virtual void onDonate( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onShowDonationDetails( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onOpenForum( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onOpenHomepage( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onSendEmail( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onShowGpl( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onOkay( wxCommandEvent& event ) { event.Skip(); }
+
+
+ public:
+
+ AboutDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("About"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE );
+
+ ~AboutDlgGenerated();
};
@@ -1237,26 +1238,26 @@ public:
///////////////////////////////////////////////////////////////////////////////
class DownloadProgressDlgGenerated : public wxDialog
{
-private:
+ private:
-protected:
- wxStaticBitmap* m_bitmapDownloading;
- wxStaticText* m_staticTextHeader;
- wxGauge* m_gaugeProgress;
- wxStaticText* m_staticTextDetails;
- wxStaticLine* m_staticline9;
- wxBoxSizer* bSizerStdButtons;
- wxButton* m_buttonCancel;
+ protected:
+ wxStaticBitmap* m_bitmapDownloading;
+ wxStaticText* m_staticTextHeader;
+ wxGauge* m_gaugeProgress;
+ wxStaticText* m_staticTextDetails;
+ wxStaticLine* m_staticline9;
+ wxBoxSizer* bSizerStdButtons;
+ wxButton* m_buttonCancel;
- // Virtual event handlers, override them in your derived class
- virtual void onCancel( wxCommandEvent& event ) { event.Skip(); }
+ // Virtual event handlers, override them in your derived class
+ virtual void onCancel( wxCommandEvent& event ) { event.Skip(); }
-public:
+ public:
- DownloadProgressDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0 );
+ DownloadProgressDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0 );
- ~DownloadProgressDlgGenerated();
+ ~DownloadProgressDlgGenerated();
};
@@ -1265,48 +1266,48 @@ public:
///////////////////////////////////////////////////////////////////////////////
class ActivationDlgGenerated : public wxDialog
{
-private:
-
-protected:
- wxPanel* m_panel35;
- wxStaticBitmap* m_bitmapActivation;
- wxRichTextCtrl* m_richTextLastError;
- wxStaticLine* m_staticline82;
- wxStaticText* m_staticTextMain;
- wxStaticLine* m_staticline181;
- wxStaticLine* m_staticline18111;
- wxPanel* m_panel3511;
- wxStaticText* m_staticTextMain1;
- wxStaticText* m_staticText136;
- wxButton* m_buttonActivateOnline;
- wxStaticLine* m_staticline181111;
- wxStaticLine* m_staticline181112;
- wxPanel* m_panel351;
- wxStaticText* m_staticText175;
- wxStaticText* m_staticText1361;
- wxButton* m_buttonCopyUrl;
- wxRichTextCtrl* m_richTextManualActivationUrl;
- wxStaticText* m_staticText13611;
- wxTextCtrl* m_textCtrlOfflineActivationKey;
- wxButton* m_buttonActivateOffline;
- wxStaticLine* m_staticline13;
- wxBoxSizer* bSizerStdButtons;
- wxButton* m_buttonCancel;
-
- // Virtual event handlers, override them in your derived class
- virtual void onClose( wxCloseEvent& event ) { event.Skip(); }
- virtual void onActivateOnline( wxCommandEvent& event ) { event.Skip(); }
- virtual void onCopyUrl( wxCommandEvent& event ) { event.Skip(); }
- virtual void onOfflineActivationEnter( wxCommandEvent& event ) { event.Skip(); }
- virtual void onActivateOffline( wxCommandEvent& event ) { event.Skip(); }
- virtual void onCancel( wxCommandEvent& event ) { event.Skip(); }
-
-
-public:
-
- ActivationDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("dummy"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
-
- ~ActivationDlgGenerated();
+ private:
+
+ protected:
+ wxPanel* m_panel35;
+ wxStaticBitmap* m_bitmapActivation;
+ wxRichTextCtrl* m_richTextLastError;
+ wxStaticLine* m_staticline82;
+ wxStaticText* m_staticTextMain;
+ wxStaticLine* m_staticline181;
+ wxStaticLine* m_staticline18111;
+ wxPanel* m_panel3511;
+ wxStaticText* m_staticTextMain1;
+ wxStaticText* m_staticText136;
+ wxButton* m_buttonActivateOnline;
+ wxStaticLine* m_staticline181111;
+ wxStaticLine* m_staticline181112;
+ wxPanel* m_panel351;
+ wxStaticText* m_staticText175;
+ wxStaticText* m_staticText1361;
+ wxButton* m_buttonCopyUrl;
+ wxRichTextCtrl* m_richTextManualActivationUrl;
+ wxStaticText* m_staticText13611;
+ wxTextCtrl* m_textCtrlOfflineActivationKey;
+ wxButton* m_buttonActivateOffline;
+ wxStaticLine* m_staticline13;
+ wxBoxSizer* bSizerStdButtons;
+ wxButton* m_buttonCancel;
+
+ // Virtual event handlers, override them in your derived class
+ virtual void onClose( wxCloseEvent& event ) { event.Skip(); }
+ virtual void onActivateOnline( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onCopyUrl( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onOfflineActivationEnter( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onActivateOffline( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onCancel( wxCommandEvent& event ) { event.Skip(); }
+
+
+ public:
+
+ ActivationDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("dummy"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
+
+ ~ActivationDlgGenerated();
};
@@ -1315,28 +1316,28 @@ public:
///////////////////////////////////////////////////////////////////////////////
class CfgHighlightDlgGenerated : public wxDialog
{
-private:
+ private:
-protected:
- wxPanel* m_panel35;
- wxStaticText* m_staticTextHighlight;
- wxSpinCtrl* m_spinCtrlOverdueDays;
- wxStaticLine* m_staticline21;
- wxBoxSizer* bSizerStdButtons;
- wxButton* m_buttonOkay;
- wxButton* m_buttonCancel;
+ protected:
+ wxPanel* m_panel35;
+ wxStaticText* m_staticTextHighlight;
+ wxSpinCtrl* m_spinCtrlOverdueDays;
+ wxStaticLine* m_staticline21;
+ wxBoxSizer* bSizerStdButtons;
+ wxButton* m_buttonOkay;
+ wxButton* m_buttonCancel;
- // Virtual event handlers, override them in your derived class
- virtual void onClose( wxCloseEvent& event ) { event.Skip(); }
- virtual void onOkay( wxCommandEvent& event ) { event.Skip(); }
- virtual void onCancel( wxCommandEvent& event ) { event.Skip(); }
+ // Virtual event handlers, override them in your derived class
+ virtual void onClose( wxCloseEvent& event ) { event.Skip(); }
+ virtual void onOkay( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onCancel( wxCommandEvent& event ) { event.Skip(); }
-public:
+ public:
- CfgHighlightDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Highlight Configurations"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE );
+ CfgHighlightDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Highlight Configurations"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE );
- ~CfgHighlightDlgGenerated();
+ ~CfgHighlightDlgGenerated();
};
@@ -1345,40 +1346,40 @@ public:
///////////////////////////////////////////////////////////////////////////////
class WarnAccessRightsMissingDlgGenerated : public wxDialog
{
-private:
-
-protected:
- wxStaticBitmap* m_bitmapGrantAccess;
- wxStaticText* m_staticTextDescr;
- wxStaticLine* m_staticline20;
- wxPanel* m_panel39;
- wxFlexGridSizer* ffgSizer11;
- wxStaticText* m_staticTextStep1;
- wxButton* m_buttonLocateBundle;
- wxStaticText* m_staticTextStep2;
- wxButton* m_buttonOpenSecurity;
- wxStaticText* m_staticTextStep3;
- wxStaticText* m_staticTextAllowChanges;
- wxStaticText* m_staticTextStep4;
- wxStaticText* m_staticTextGrantAccess;
- wxStaticLine* m_staticline36;
- wxCheckBox* m_checkBoxDontShowAgain;
- wxBoxSizer* bSizerStdButtons;
- wxButton* m_buttonClose;
-
- // Virtual event handlers, override them in your derived class
- virtual void onClose( wxCloseEvent& event ) { event.Skip(); }
- virtual void onShowAppBundle( wxCommandEvent& event ) { event.Skip(); }
- virtual void onOpenSecuritySettings( wxCommandEvent& event ) { event.Skip(); }
- virtual void onCheckBoxClick( wxCommandEvent& event ) { event.Skip(); }
- virtual void onOkay( wxCommandEvent& event ) { event.Skip(); }
-
-
-public:
-
- WarnAccessRightsMissingDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Grant Full Disk Access"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE );
-
- ~WarnAccessRightsMissingDlgGenerated();
+ private:
+
+ protected:
+ wxStaticBitmap* m_bitmapGrantAccess;
+ wxStaticText* m_staticTextDescr;
+ wxStaticLine* m_staticline20;
+ wxPanel* m_panel39;
+ wxFlexGridSizer* ffgSizer11;
+ wxStaticText* m_staticTextStep1;
+ wxButton* m_buttonLocateBundle;
+ wxStaticText* m_staticTextStep2;
+ wxButton* m_buttonOpenSecurity;
+ wxStaticText* m_staticTextStep3;
+ wxStaticText* m_staticTextAllowChanges;
+ wxStaticText* m_staticTextStep4;
+ wxStaticText* m_staticTextGrantAccess;
+ wxStaticLine* m_staticline36;
+ wxCheckBox* m_checkBoxDontShowAgain;
+ wxBoxSizer* bSizerStdButtons;
+ wxButton* m_buttonClose;
+
+ // Virtual event handlers, override them in your derived class
+ virtual void onClose( wxCloseEvent& event ) { event.Skip(); }
+ virtual void onShowAppBundle( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onOpenSecuritySettings( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onCheckBoxClick( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onOkay( wxCommandEvent& event ) { event.Skip(); }
+
+
+ public:
+
+ WarnAccessRightsMissingDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Grant Full Disk Access"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE );
+
+ ~WarnAccessRightsMissingDlgGenerated();
};
diff --git a/FreeFileSync/Source/ui/gui_status_handler.cpp b/FreeFileSync/Source/ui/gui_status_handler.cpp
index 71f201f1..6bb82a11 100644
--- a/FreeFileSync/Source/ui/gui_status_handler.cpp
+++ b/FreeFileSync/Source/ui/gui_status_handler.cpp
@@ -212,7 +212,7 @@ void StatusHandlerTemporaryPanel::reportWarning(const std::wstring& msg, bool& w
bool dontWarnAgain = false;
switch (showConfirmationDialog(&mainDlg_, DialogInfoType::warning,
PopupDialogCfg().setDetailInstructions(msg).
- remindWhenPending(soundFileAlertPending_).
+ alertWhenPending(soundFileAlertPending_).
setCheckBox(dontWarnAgain, _("&Don't show this warning again")),
_("&Ignore")))
{
@@ -253,7 +253,7 @@ ProcessCallback::Response StatusHandlerTemporaryPanel::reportError(const ErrorIn
switch (showConfirmationDialog(&mainDlg_, DialogInfoType::error,
PopupDialogCfg().setDetailInstructions(errorInfo.msg).
- remindWhenPending(soundFileAlertPending_),
+ alertWhenPending(soundFileAlertPending_),
_("&Ignore"), _("Ignore &all"), _("&Retry")))
{
case ConfirmationButton3::accept: //ignore
@@ -294,7 +294,7 @@ void StatusHandlerTemporaryPanel::reportFatalError(const std::wstring& msg)
switch (showConfirmationDialog(&mainDlg_, DialogInfoType::error,
PopupDialogCfg().setDetailInstructions(msg).
- remindWhenPending(soundFileAlertPending_),
+ alertWhenPending(soundFileAlertPending_),
_("&Ignore"), _("Ignore &all")))
{
case ConfirmationButton2::accept: //ignore
@@ -576,7 +576,7 @@ void StatusHandlerFloatingDialog::reportWarning(const std::wstring& msg, bool& w
bool dontWarnAgain = false;
switch (showConfirmationDialog(progressDlg_->getWindowIfVisible(), DialogInfoType::warning,
PopupDialogCfg().setDetailInstructions(msg).
- remindWhenPending(soundFileAlertPending_).
+ alertWhenPending(soundFileAlertPending_).
setCheckBox(dontWarnAgain, _("&Don't show this warning again")),
_("&Ignore")))
{
@@ -617,7 +617,7 @@ ProcessCallback::Response StatusHandlerFloatingDialog::reportError(const ErrorIn
switch (showConfirmationDialog(progressDlg_->getWindowIfVisible(), DialogInfoType::error,
PopupDialogCfg().setDetailInstructions(errorInfo.msg).
- remindWhenPending(soundFileAlertPending_),
+ alertWhenPending(soundFileAlertPending_),
_("&Ignore"), _("Ignore &all"), _("&Retry")))
{
case ConfirmationButton3::accept: //ignore
@@ -658,7 +658,7 @@ void StatusHandlerFloatingDialog::reportFatalError(const std::wstring& msg)
switch (showConfirmationDialog(progressDlg_->getWindowIfVisible(), DialogInfoType::error,
PopupDialogCfg().setDetailInstructions(msg).
- remindWhenPending(soundFileAlertPending_),
+ alertWhenPending(soundFileAlertPending_),
_("&Ignore"), _("Ignore &all")))
{
case ConfirmationButton2::accept: //ignore
diff --git a/FreeFileSync/Source/ui/main_dlg.cpp b/FreeFileSync/Source/ui/main_dlg.cpp
index ffbb35c5..7667992e 100644
--- a/FreeFileSync/Source/ui/main_dlg.cpp
+++ b/FreeFileSync/Source/ui/main_dlg.cpp
@@ -279,7 +279,7 @@ void updateTopButton(wxBitmapButton& btn, const wxImage& img, const wxString& va
{
wxImage btnIconImg = makeGrey ? greyScale(img) : img;
- wxImage btnLabelImg = createImageFromText(btn.GetLabel(), btn.GetFont(), wxSystemSettings::GetColour(makeGrey ? wxSYS_COLOUR_GRAYTEXT : wxSYS_COLOUR_BTNTEXT));
+ wxImage btnLabelImg = createImageFromText(btn.GetLabelText(), btn.GetFont(), wxSystemSettings::GetColour(makeGrey ? wxSYS_COLOUR_GRAYTEXT : wxSYS_COLOUR_BTNTEXT));
wxImage varLabelImg = createImageFromText(varName,
wxFont(wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD),
@@ -685,18 +685,27 @@ MainDialog::MainDialog(const Zstring& globalConfigFilePath,
//set tool tips with (non-translated!) short cut hint
- m_bpButtonNew ->SetToolTip(replaceCpy(_("&New"), L"&", L"") + L" (Ctrl+N)"); //
- m_bpButtonOpen ->SetToolTip(replaceCpy(_("&Open..."), L"&", L"") + L" (Ctrl+O)"); //
- m_bpButtonSave ->SetToolTip(replaceCpy(_("&Save"), L"&", L"") + L" (Ctrl+S)"); //reuse texts from gui builder
- m_bpButtonSaveAs ->SetToolTip(replaceCpy(_("Save &as..."), L"&", L"")); //
- m_bpButtonSaveAsBatch->SetToolTip(replaceCpy(_("Save as &batch job..."), L"&", L"")); //
-
- m_bpButtonToggleLog ->SetToolTip(replaceCpy(_("Show &log"), L"&", L"") + L" (F4)"); //
- m_buttonCompare ->SetToolTip(replaceCpy(_("Start &comparison"), L"&", L"") + L" (F5)"); //
- m_bpButtonCmpConfig ->SetToolTip(replaceCpy(_("C&omparison settings"), L"&", L"") + L" (F6)"); //
- m_bpButtonSyncConfig->SetToolTip(replaceCpy(_("S&ynchronization settings"), L"&", L"") + L" (F8)"); //
- m_buttonSync ->SetToolTip(replaceCpy(_("Start &synchronization"), L"&", L"") + L" (F9)"); //
- m_bpButtonSwapSides ->SetToolTip(_("Swap sides") + L" (Ctrl+W)");
+ auto setCommandToolTip = [](wxButton& btn, const wxString& label, wxString shortcut)
+ {
+ wxString tooltip = wxControl::RemoveMnemonics(label);
+ if (!shortcut.empty())
+ {
+ tooltip += L" (" + shortcut + L')';
+ }
+ btn.SetToolTip(tooltip);
+ };
+ setCommandToolTip(*m_bpButtonNew, _("&New"), L"Ctrl+N"); //
+ setCommandToolTip(*m_bpButtonOpen, _("&Open..."), L"Ctrl+O"); //
+ setCommandToolTip(*m_bpButtonSave, _("&Save"), L"Ctrl+S"); //reuse texts from GUI builder
+ setCommandToolTip(*m_bpButtonSaveAs, _("Save &as..."), L""); //
+ setCommandToolTip(*m_bpButtonSaveAsBatch, _("Save as &batch job..."), L""); //
+
+ setCommandToolTip(*m_bpButtonToggleLog, _("Show &log"), L"F4"); //
+ setCommandToolTip(*m_buttonCompare, _("Start &comparison"), L"F5"); //
+ setCommandToolTip(*m_bpButtonCmpConfig, _("C&omparison settings"), L"F6"); //
+ setCommandToolTip(*m_bpButtonSyncConfig, _("S&ynchronization settings"), L"F8"); //
+ setCommandToolTip(*m_buttonSync, _("Start &synchronization"), L"F9"); //
+ setCommandToolTip(*m_bpButtonSwapSides, _("Swap sides"), L"Ctrl+Tab");
//m_bpButtonCmpContext ->SetToolTip(m_bpButtonCmpConfig ->GetToolTipText());
//m_bpButtonSyncContext->SetToolTip(m_bpButtonSyncConfig->GetToolTipText());
@@ -866,7 +875,8 @@ MainDialog::MainDialog(const Zstring& globalConfigFilePath,
m_gridCfgHistory->makeRowVisible(selectedRows.front());
- m_buttonCompare->SetFocus();
+ //start up: user most likely wants to change config, or start comparison by pressing ENTER
+ m_gridCfgHistory->SetFocus();
//----------------------------------------------------------------------------------------------------------------------------------------------------------------
//some convenience: if FFS is started with a *.ffs_gui file as commandline parameter AND all directories contained exist, comparison shall be started right away
@@ -991,7 +1001,7 @@ void MainDialog::onClose(wxCloseEvent& event)
}
const bool cancelled = !saveOldConfig(); //notify user about changed settings
- if (cancelled)
+ if (cancelled) //...or error
{
event.Veto();
return;
@@ -1756,9 +1766,9 @@ void MainDialog::openExternalApplication(const Zstring& commandLinePhrase, bool
void MainDialog::flashStatusInformation(const wxString& text)
{
- oldStatusMsgs_.push_back(m_staticTextStatusCenter->GetLabel());
+ oldStatusMsgs_.push_back(m_staticTextStatusCenter->GetLabelText());
- m_staticTextStatusCenter->SetLabel(text);
+ m_staticTextStatusCenter->SetLabelText(text);
m_staticTextStatusCenter->SetForegroundColour(wxColor(31, 57, 226)); //highlight color: blue
m_staticTextStatusCenter->SetFont(m_staticTextStatusCenter->GetFont().Bold());
@@ -1774,7 +1784,7 @@ void MainDialog::flashStatusInformation(const wxString& text)
if (oldStatusMsgs_.empty()) //restore original status text
{
- m_staticTextStatusCenter->SetLabel(oldMsg);
+ m_staticTextStatusCenter->SetLabelText(oldMsg);
m_staticTextStatusCenter->SetForegroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT)); //reset color
wxFont font = m_staticTextStatusCenter->GetFont();
@@ -2124,17 +2134,20 @@ void MainDialog::onLocalKeyEvent(wxKeyEvent& event) //process key events without
const int keyCode = event.GetKeyCode();
//CTRL + X
+ /* if (event.ControlDown())
+ switch (keyCode)
+ {
+ case 'F': //CTRL + F
+ showFindPanel();
+ return; //-> swallow event!
+ } */
+
if (event.ControlDown())
switch (keyCode)
{
- // case 'F': //CTRL + F
- // showFindPanel();
- // return; //-> swallow event!
-
- case 'W': //CTRL + W
- //don't use F10: and avoid accidental clicks: https://freefilesync.org/forum/viewtopic.php?t=1663
- wxCommandEvent dummy(wxEVT_COMMAND_BUTTON_CLICKED);
- m_bpButtonSwapSides->Command(dummy); //simulate click
+ case WXK_TAB: //CTRL + TAB
+ case WXK_NUMPAD_TAB: //don't use F10: avoid accidental clicks: https://freefilesync.org/forum/viewtopic.php?t=1663
+ swapSides();
return; //-> swallow event!
}
@@ -2167,6 +2180,7 @@ void MainDialog::onLocalKeyEvent(wxKeyEvent& event) //process key events without
//return; //-> swallow event!
case WXK_F11:
+ warn_static("F11 not working at all on macOS!")
setGridViewType(m_bpButtonViewType->isActive() ? GridViewType::difference : GridViewType::action);
return; //-> swallow event!
@@ -2809,7 +2823,7 @@ void MainDialog::onSetLayoutContext(wxMouseEvent& event)
{
ContextMenu menu;
- menu.addItem(replaceCpy(_("&Reset layout"), L"&", L""), [&] { resetLayout(); }, loadImage("reset_sicon"));
+ menu.addItem(_("&Reset layout"), [&] { resetLayout(); }, loadImage("reset_sicon"));
//----------------------------------------------------------------------------------------
bool addedSeparator = false;
@@ -2942,7 +2956,9 @@ void MainDialog::cfgHistoryRemoveObsolete(const std::vector<Zstring>& filePaths)
guiQueue_.processAsync(getUnavailableCfgFilesAsync, [this](const std::vector<Zstring>& filePaths2)
{
cfggrid::getDataView(*m_gridCfgHistory).removeItems(filePaths2);
- m_gridCfgHistory->Refresh();
+
+ //restore grid selection (after rows were removed)
+ cfggrid::addAndSelect(*m_gridCfgHistory, activeConfigFiles_, false /*scrollToSelection*/);
});
}
@@ -3040,7 +3056,7 @@ void MainDialog::onConfigSave(wxCommandEvent& event)
}
-bool MainDialog::trySaveConfig(const Zstring* guiCfgPath) //return true if saved successfully
+bool MainDialog::trySaveConfig(const Zstring* guiCfgPath) //"false": error/cancel
{
Zstring cfgFilePath;
@@ -3090,7 +3106,7 @@ bool MainDialog::trySaveConfig(const Zstring* guiCfgPath) //return true if saved
}
-bool MainDialog::trySaveBatchConfig(const Zstring* batchCfgPath)
+bool MainDialog::trySaveBatchConfig(const Zstring* batchCfgPath) //"false": error/cancel
{
//essentially behave like trySaveConfig(): the collateral damage of not saving GUI-only settings "m_bpButtonViewType" is negligible
@@ -3172,7 +3188,7 @@ bool MainDialog::trySaveBatchConfig(const Zstring* batchCfgPath)
}
-bool MainDialog::saveOldConfig() //return false on user abort
+bool MainDialog::saveOldConfig() //"false": error/cancel
{
const XmlGuiConfig guiCfg = getConfig();
@@ -3199,9 +3215,9 @@ bool MainDialog::saveOldConfig() //return false on user abort
switch (getXmlType(activeCfgFilePath)) //throw FileError
{
case XmlType::gui:
- return trySaveConfig(&activeCfgFilePath);
+ return trySaveConfig(&activeCfgFilePath); //"false": error/cancel
case XmlType::batch:
- return trySaveBatchConfig(&activeCfgFilePath);
+ return trySaveBatchConfig(&activeCfgFilePath); //"false": error/cancel
case XmlType::global:
case XmlType::other:
showNotificationDialog(this, DialogInfoType::error,
@@ -3269,7 +3285,7 @@ void MainDialog::onCfgGridSelection(GridSelectEvent& event)
assert(false);
if (filePaths.empty() || //ignore accidental clicks in empty space of configuration panel
- !loadConfiguration(filePaths))
+ !loadConfiguration(filePaths, true /*ignoreBrokenConfig*/)) //=> allow user to delete broken config entry!
//user changed m_gridCfgHistory selection so it's this method's responsibility to synchronize with activeConfigFiles:
//- if user cancelled saving old config
//- there's an error loading new config
@@ -3295,13 +3311,10 @@ void MainDialog::onConfigNew(wxCommandEvent& event)
}
-bool MainDialog::loadConfiguration(const std::vector<Zstring>& filePaths)
+bool MainDialog::loadConfiguration(const std::vector<Zstring>& filePaths, bool ignoreBrokenConfig) //"false": error/cancel
{
- if (!saveOldConfig())
- return false; //cancelled by user
-
- XmlGuiConfig newGuiCfg; //contains default values
-
+ XmlGuiConfig newGuiCfg; //default values
+ std::wstring warningMsg;
//set default file filter: this is only ever relevant when creating new configurations!
//a default XmlGuiConfig does not need these user-specific exclusions!
newGuiCfg.mainCfg.globalFilter = globalCfg_.defaultFilter;
@@ -3309,25 +3322,27 @@ bool MainDialog::loadConfiguration(const std::vector<Zstring>& filePaths)
if (!filePaths.empty()) //empty cfg file list means "use default"
try
{
- //allow reading batch configurations also
- std::wstring warningMsg;
std::tie(newGuiCfg, warningMsg) = readAnyConfig(filePaths); //throw FileError
-
- if (!warningMsg.empty())
- {
- showNotificationDialog(this, DialogInfoType::warning, PopupDialogCfg().setDetailInstructions(warningMsg));
- setConfig(newGuiCfg, filePaths);
- setLastUsedConfig(XmlGuiConfig(), filePaths); //simulate changed config due to parsing errors
- return true;
- }
+ //allow reading batch configurations, too
}
catch (const FileError& e)
{
showNotificationDialog(this, DialogInfoType::error, PopupDialogCfg().setDetailInstructions(e.toString()));
- return false;
+ if (!ignoreBrokenConfig)
+ return false;
}
+ if (!saveOldConfig()) //=> error/cancel
+ return false;
+
setConfig(newGuiCfg, filePaths);
+
+ if (!warningMsg.empty())
+ {
+ showNotificationDialog(this, DialogInfoType::warning, PopupDialogCfg().setDetailInstructions(warningMsg));
+ setLastUsedConfig(XmlGuiConfig(), filePaths); //simulate changed config due to parsing errors
+ }
+
//flashStatusInformation("Configuration loaded"); -> irrelevant!?
return true;
}
@@ -3380,12 +3395,13 @@ void MainDialog::removeSelectedCfgHistoryItems(bool deleteFromDisk)
filePaths = deletedPaths;
}
- //FIRST: discard unsaved changes (*before* removing cfg items) => no point in saving before removing, right?
- setLastUsedConfig(getConfig(), {} /*cfgFilePaths*/);
-
cfggrid::getDataView(*m_gridCfgHistory).removeItems(filePaths);
m_gridCfgHistory->Refresh(); //grid size changed => clears selection!
+ //discard unsaved changes => no point in saving before loading next config, right?
+ //- bonus: clear activeConfigFiles_ if loadConfiguration() fails so that old configs don't reappear after restart
+ setLastUsedConfig(getConfig(), {} /*cfgFilePaths*/);
+
//set active selection on next item to allow "batch-deletion" by holding down DEL key
//user expects that selected config is also loaded: https://freefilesync.org/forum/viewtopic.php?t=5723
// => deleteFromDisk failed? still select selectedRows.front()!
@@ -3397,8 +3413,7 @@ void MainDialog::removeSelectedCfgHistoryItems(bool deleteFromDisk)
nextCfgPaths.push_back(cfg->cfgItem.cfgFilePath);
}
- if (!loadConfiguration(nextCfgPaths))
- setLastUsedConfig(lastSavedCfg_, {}); //error/(cancel) => clear activeConfigFiles_ so that old configs don't reappear after restart
+ loadConfiguration(nextCfgPaths); //=> error/(cancel)
}
}
@@ -3421,8 +3436,8 @@ void MainDialog::renameSelectedCfgHistoryItem()
//FIRST: 1. consolidate unsaved changes using the *old* config file name, if any!
//2. get rid of multiple-selection if exists 3. load cfg to allow non-failing(!) setLastUsedConfig() below
- if (!loadConfiguration({cfgPathOld}))
- return; //error/cancel
+ if (!loadConfiguration({cfgPathOld})) //=> error/cancel
+ return;
const Zstring fileName = afterLast(cfgPathOld, FILE_NAME_SEPARATOR, IfNotFoundReturn::all);
/**/ Zstring folderPathPf = beforeLast(cfgPathOld, FILE_NAME_SEPARATOR, IfNotFoundReturn::none);
@@ -3732,7 +3747,7 @@ void MainDialog::setConfig(const XmlGuiConfig& newGuiCfg, const std::vector<Zstr
//set first folder pair
firstFolderPair_->setValues(currentCfg_.mainCfg.firstPair);
- //folderHistoryLeft->addItem(currentCfg.mainCfg.firstPair.leftDirectory);
+ //folderHistoryLeft- >addItem(currentCfg.mainCfg.firstPair.leftDirectory);
//folderHistoryRight->addItem(currentCfg.mainCfg.firstPair.rightDirectory);
setAddFolderPairs(currentCfg_.mainCfg.additionalPairs);
@@ -4221,7 +4236,7 @@ void MainDialog::updateStatistics()
fnt.SetWeight(isZeroValue ? wxFONTWEIGHT_NORMAL : wxFONTWEIGHT_BOLD);
txtControl.SetFont(fnt);
- txtControl.SetLabel(valueAsString);
+ txtControl.SetLabelText(valueAsString);
bmpControl.SetBitmap(greyScaleIfDisabled(mirrorIfRtl(loadImage(imageName)), !isZeroValue));
}
};
@@ -4606,11 +4621,11 @@ void MainDialog::setLastOperationLog(const ProcessSummary& summary, const std::s
}();
m_bitmapSyncResult->SetBitmap(syncResultImage);
- m_staticTextSyncResult->SetLabel(getSyncResultLabel(summary.syncResult));
+ m_staticTextSyncResult->SetLabelText(getSyncResultLabel(summary.syncResult));
- m_staticTextItemsProcessed->SetLabel(formatNumber(summary.statsProcessed.items));
- m_staticTextBytesProcessed->SetLabel(L'(' + formatFilesizeShort(summary.statsProcessed.bytes) + L')');
+ m_staticTextItemsProcessed->SetLabelText(formatNumber(summary.statsProcessed.items));
+ m_staticTextBytesProcessed->SetLabelText(L'(' + formatFilesizeShort(summary.statsProcessed.bytes) + L')');
const bool hideRemainingStats = (summary.statsTotal.items < 0 && summary.statsTotal.bytes < 0) || //no total items/bytes: e.g. for pure folder comparison
summary.statsProcessed == summary.statsTotal; //...if everything was processed successfully
@@ -4622,13 +4637,13 @@ void MainDialog::setLastOperationLog(const ProcessSummary& summary, const std::s
if (!hideRemainingStats)
{
- m_staticTextItemsRemaining->SetLabel( formatNumber(summary.statsTotal.items - summary.statsProcessed.items));
- m_staticTextBytesRemaining->SetLabel(L'(' + formatFilesizeShort(summary.statsTotal.bytes - summary.statsProcessed.bytes) + L')');
+ m_staticTextItemsRemaining->SetLabelText( formatNumber(summary.statsTotal.items - summary.statsProcessed.items));
+ m_staticTextBytesRemaining->SetLabelText(L'(' + formatFilesizeShort(summary.statsTotal.bytes - summary.statsProcessed.bytes) + L')');
}
const int64_t totalTimeSec = std::chrono::duration_cast<std::chrono::seconds>(summary.totalTime).count();
- m_staticTextTimeElapsed->SetLabel(wxTimeSpan::Seconds(totalTimeSec).Format(L"%H:%M:%S"));
+ m_staticTextTimeElapsed->SetLabelText(wxTimeSpan::Seconds(totalTimeSec).Format(L"%H:%M:%S"));
//totalTimeSec < 3600 ? wxTimeSpan::Seconds(totalTimeSec).Format(L"%M:%S") -> let's use full precision for max. clarity: https://freefilesync.org/forum/viewtopic.php?t=6308
logPanel_->setLog(errorLog);
@@ -4744,25 +4759,19 @@ void MainDialog::onGridLabelLeftClickC(GridLabelClickEvent& event)
}
-void MainDialog::onSwapSides(wxCommandEvent& event)
+void MainDialog::onSwapSides(wxEvent& event)
{
- if (globalCfg_.confirmDlgs.confirmSwapSides)
- {
- bool dontWarnAgain = false;
- switch (showConfirmationDialog(this, DialogInfoType::info,
- PopupDialogCfg().setMainInstructions(_("Please confirm you want to swap sides.")).
- setCheckBox(dontWarnAgain, _("&Don't show this dialog again")),
- _("&Swap")))
- {
- case ConfirmationButton::accept: //swap
- globalCfg_.confirmDlgs.confirmSwapSides = !dontWarnAgain;
- break;
- case ConfirmationButton::cancel:
- return;
- }
- }
- //------------------------------------------------------
+ ContextMenu menu;
+ menu.addItem(_("Swap sides") +
+ L"\tCtrl+Tab",
+ [&] { swapSides(); });
+ menu.popup(*m_bpButtonSwapSides, {m_bpButtonSwapSides->GetSize().x, 0});
+}
+
+
+void MainDialog::swapSides()
+{
//swap directory names:
LocalPairConfig lpc1st = firstFolderPair_->getValues();
std::swap(lpc1st.folderPathPhraseLeft, lpc1st.folderPathPhraseRight);
@@ -4827,6 +4836,8 @@ void MainDialog::onSwapSides(wxCommandEvent& event)
}
updateGui(); //e.g. unsaved changes
+
+ flashStatusInformation(_("Left and right sides have been swapped"));
}
@@ -5689,7 +5700,7 @@ void MainDialog::onMenuCheckVersionAutomatically(wxCommandEvent& event)
{
flashStatusInformation(_("Searching for program updates..."));
//synchronous update check is sufficient here:
- automaticUpdateCheckEval(this, globalCfg_.lastUpdateCheck, globalCfg_.lastOnlineVersion,
+ automaticUpdateCheckEval(*this, globalCfg_.lastUpdateCheck, globalCfg_.lastOnlineVersion,
automaticUpdateCheckRunAsync(automaticUpdateCheckPrepare(*this).get()).get());
}
}
@@ -5725,7 +5736,7 @@ void MainDialog::onStartupUpdateCheck(wxIdleEvent& event)
guiQueue_.processAsync([resultPrep] { return automaticUpdateCheckRunAsync(resultPrep.get()); }, //run on worker thread: (long-running part of the check)
[this, showNewVersionReminder] (std::shared_ptr<const UpdateCheckResult>&& resultAsync)
{
- automaticUpdateCheckEval(this, globalCfg_.lastUpdateCheck, globalCfg_.lastOnlineVersion,
+ automaticUpdateCheckEval(*this, globalCfg_.lastUpdateCheck, globalCfg_.lastOnlineVersion,
resultAsync.get()); //run on main thread:
showNewVersionReminder();
});
diff --git a/FreeFileSync/Source/ui/main_dlg.h b/FreeFileSync/Source/ui/main_dlg.h
index a739beb6..0c9b43ef 100644
--- a/FreeFileSync/Source/ui/main_dlg.h
+++ b/FreeFileSync/Source/ui/main_dlg.h
@@ -76,11 +76,11 @@ private:
void setGlobalCfgOnInit(const XmlGlobalSettings& globalSettings); //messes with Maximize(), window sizes, so call just once!
XmlGlobalSettings getGlobalCfgBeforeExit(); //destructive "get" thanks to "Iconize(false), Maximize(false)"
- bool loadConfiguration(const std::vector<Zstring>& filepaths); //return "true" if loaded successfully; "false" if cancelled or error
+ bool loadConfiguration(const std::vector<Zstring>& filepaths, bool ignoreBrokenConfig = false); //"false": error/cancel
- bool trySaveConfig (const Zstring* guiCfgPath); //return true if saved successfully
- bool trySaveBatchConfig(const Zstring* batchCfgPath); //
- bool saveOldConfig(); //return false on user abort
+ bool trySaveConfig (const Zstring* guiCfgPath); //
+ bool trySaveBatchConfig(const Zstring* batchCfgPath); //"false": error/cancel
+ bool saveOldConfig(); //
void updateGlobalFilterButton();
@@ -162,6 +162,8 @@ private:
void onCheckRows (CheckRowsEvent& event);
void onSetSyncDirection(SyncDirectionEvent& event);
+ void swapSides();
+
void onGridDoubleClickRim(zen::GridClickEvent& event, bool leftSide);
void onGridLabelLeftClickRim(zen::GridLabelClickEvent& event, bool onLeft);
@@ -204,8 +206,10 @@ private:
void onToggleLog (wxCommandEvent& event) override;
void onCompare (wxCommandEvent& event) override;
void onStartSync (wxCommandEvent& event) override;
- void onSwapSides (wxCommandEvent& event) override;
void onClose (wxCloseEvent& event) override;
+ void onSwapSides (wxCommandEvent& event) override { onSwapSides(static_cast<wxEvent&>(event)); }
+ void onSwapSidesMouse (wxMouseEvent& event) override { onSwapSides(static_cast<wxEvent&>(event)); }
+ void onSwapSides (wxEvent& event);
void startSyncForSelecction(const std::vector<FileSystemObject*>& selection);
diff --git a/FreeFileSync/Source/ui/progress_indicator.cpp b/FreeFileSync/Source/ui/progress_indicator.cpp
index b772009d..93761b60 100644
--- a/FreeFileSync/Source/ui/progress_indicator.cpp
+++ b/FreeFileSync/Source/ui/progress_indicator.cpp
@@ -133,7 +133,7 @@ class CurveDataProgressSeparatorLine : public CurveData
class CompareProgressPanel::Impl : public CompareProgressDlgGenerated
{
public:
- Impl(wxFrame& parentWindow);
+ explicit Impl(wxFrame& parentWindow);
void init(const Statistics& syncStat, bool ignoreErrors, size_t autoRetryCount); //constructor/destructor semantics, but underlying Window is reused
void teardown(); //
@@ -889,7 +889,7 @@ dlgSizeBuf_(dlgSize)
enumPostSyncAction_.add(PostSyncAction2::none, L"");
if (parentFrame_) //enable EXIT option for gui mode sync
- enumPostSyncAction_.add(PostSyncAction2::exit, replaceCpy(_("E&xit"), L"&", L"")); //reuse translation
+ enumPostSyncAction_.add(PostSyncAction2::exit, wxControl::RemoveMnemonics(_("E&xit"))); //reuse label translation
enumPostSyncAction_.add(PostSyncAction2::sleep, _("System: Sleep"));
enumPostSyncAction_.add(PostSyncAction2::shutdown, _("System: Shut down"));
@@ -1228,7 +1228,7 @@ void SyncProgressDialogImpl<TopLevelDialog>::updateStaticGui() //depends on "syn
if (!syncStat_)
return;
- pnl_.m_staticTextPhase->SetLabel(getDialogPhaseText(*syncStat_, paused_));
+ pnl_.m_staticTextPhase->SetLabelText(getDialogPhaseText(*syncStat_, paused_));
//pnl_.m_bitmapStatus->SetToolTip(); -> redundant
const wxImage statusImage = [&]
@@ -1355,7 +1355,7 @@ void SyncProgressDialogImpl<TopLevelDialog>::showSummary(SyncResult syncResult,
}();
pnl_.m_bitmapStatus->SetBitmap(statusImage);
- pnl_.m_staticTextPhase->SetLabel(getSyncResultLabel(syncResult));
+ pnl_.m_staticTextPhase->SetLabelText(getSyncResultLabel(syncResult));
//pnl_.m_bitmapStatus->SetToolTip(); -> redundant
//show status on Windows 7 taskbar
diff --git a/FreeFileSync/Source/ui/progress_indicator.h b/FreeFileSync/Source/ui/progress_indicator.h
index 1a8e73f4..f4d2d71a 100644
--- a/FreeFileSync/Source/ui/progress_indicator.h
+++ b/FreeFileSync/Source/ui/progress_indicator.h
@@ -21,7 +21,7 @@ namespace fff
class CompareProgressPanel
{
public:
- CompareProgressPanel(wxFrame& parentWindow); //CompareProgressPanel will be owned by parentWindow!
+ explicit CompareProgressPanel(wxFrame& parentWindow); //CompareProgressPanel will be owned by parentWindow!
wxWindow* getAsWindow(); //convenience! don't abuse!
diff --git a/FreeFileSync/Source/ui/small_dlgs.cpp b/FreeFileSync/Source/ui/small_dlgs.cpp
index 52ab1c0f..4b4562cc 100644
--- a/FreeFileSync/Source/ui/small_dlgs.cpp
+++ b/FreeFileSync/Source/ui/small_dlgs.cpp
@@ -97,7 +97,7 @@ AboutDlg::AboutDlg(wxWindow* parent) : AboutDlgGenerated(parent)
build += SPACED_BULLET;
build += utfTo<wxString>(formatTime(formatDateTag, getCompileTime()));
- m_staticTextVersion->SetLabel(replaceCpy(_("Version: %x"), L"%x", build));
+ m_staticTextVersion->SetLabelText(replaceCpy(_("Version: %x"), L"%x", build));
//------------------------------------
{
@@ -254,8 +254,8 @@ CloudSetupDlg::CloudSetupDlg(wxWindow* parent, Zstring& folderPathPhrase, Zstrin
setRelativeFontSize(*m_toggleBtnSftp, 1.25);
setRelativeFontSize(*m_toggleBtnFtp, 1.25);
- setBitmapTextLabel(*m_buttonGdriveAddUser, loadImage("user_add", fastFromDIP(20)), m_buttonGdriveAddUser ->GetLabel());
- setBitmapTextLabel(*m_buttonGdriveRemoveUser, loadImage("user_remove", fastFromDIP(20)), m_buttonGdriveRemoveUser->GetLabel());
+ setBitmapTextLabel(*m_buttonGdriveAddUser, loadImage("user_add", fastFromDIP(20)), m_buttonGdriveAddUser ->GetLabelText());
+ setBitmapTextLabel(*m_buttonGdriveRemoveUser, loadImage("user_remove", fastFromDIP(20)), m_buttonGdriveRemoveUser->GetLabelText());
m_bitmapGdriveUser ->SetBitmap(loadImage("user", fastFromDIP(20)));
m_bitmapGdriveDrive->SetBitmap(loadImage("drive", fastFromDIP(20)));
@@ -276,7 +276,7 @@ CloudSetupDlg::CloudSetupDlg(wxWindow* parent, Zstring& folderPathPhrase, Zstrin
setupFileDrop(*m_panelAuth);
m_panelAuth->Bind(EVENT_DROP_FILE, [this](FileDropEvent& event) { onKeyFileDropped(event); });
- m_staticTextConnectionsLabelSub->SetLabel(L'(' + _("Connections") + L')');
+ m_staticTextConnectionsLabelSub->SetLabelText(L'(' + _("Connections") + L')');
//use spacer to keep dialog height stable, no matter if key file options are visible
bSizerAuthInner->Add(0, m_panelAuth->GetSize().y);
@@ -607,11 +607,11 @@ void CloudSetupDlg::updateGui()
{
case SftpAuthType::password:
m_radioBtnPassword->SetValue(true);
- m_staticTextPassword->SetLabel(_("Password:"));
+ m_staticTextPassword->SetLabelText(_("Password:"));
break;
case SftpAuthType::keyFile:
m_radioBtnKeyfile->SetValue(true);
- m_staticTextPassword->SetLabel(_("Key passphrase:"));
+ m_staticTextPassword->SetLabelText(_("Key passphrase:"));
break;
case SftpAuthType::agent:
m_radioBtnAgent->SetValue(true);
@@ -620,7 +620,7 @@ void CloudSetupDlg::updateGui()
break;
case CloudType::ftp:
- m_staticTextPassword->SetLabel(_("Password:"));
+ m_staticTextPassword->SetLabelText(_("Password:"));
break;
}
@@ -813,9 +813,8 @@ CopyToDialog::CopyToDialog(wxWindow* parent,
const auto& [itemList, itemCount] = getSelectedItemsAsString(rowsOnLeft, rowsOnRight);
- const wxString header = _P("Copy the following item to another folder?",
- "Copy the following %x items to another folder?", itemCount);
- m_staticTextHeader->SetLabel(header);
+ m_staticTextHeader->SetLabelText(_P("Copy the following item to another folder?",
+ "Copy the following %x items to another folder?", itemCount));
m_staticTextHeader->Wrap(fastFromDIP(460)); //needs to be reapplied after SetLabel()
m_textCtrlFileList->ChangeValue(itemList);
@@ -956,16 +955,16 @@ void DeleteDialog::updateGui()
if (m_checkBoxUseRecycler->GetValue())
{
m_bitmapDeleteType->SetBitmap(imgTrash_);
- m_staticTextHeader->SetLabel(_P("Do you really want to move the following item to the recycle bin?",
- "Do you really want to move the following %x items to the recycle bin?", itemCount_));
- m_buttonOK->SetLabel(_("Move")); //no access key needed: use ENTER!
+ m_staticTextHeader->SetLabelText(_P("Do you really want to move the following item to the recycle bin?",
+ "Do you really want to move the following %x items to the recycle bin?", itemCount_));
+ m_buttonOK->SetLabelText(_("Move")); //no access key needed: use ENTER!
}
else
{
m_bitmapDeleteType->SetBitmap(loadImage("delete_permanently"));
- m_staticTextHeader->SetLabel(_P("Do you really want to delete the following item?",
- "Do you really want to delete the following %x items?", itemCount_));
- m_buttonOK->SetLabel(replaceCpy(_("&Delete"), L"&", L""));
+ m_staticTextHeader->SetLabelText(_P("Do you really want to delete the following item?",
+ "Do you really want to delete the following %x items?", itemCount_));
+ m_buttonOK->SetLabelText(wxControl::RemoveMnemonics(_("&Delete"))); //no access key needed: use ENTER!
}
m_staticTextHeader->Wrap(fastFromDIP(460)); //needs to be reapplied after SetLabel()
@@ -1037,8 +1036,8 @@ SyncConfirmationDlg::SyncConfirmationDlg(wxWindow* parent,
setMainInstructionFont(*m_staticTextCaption);
m_bitmapSync->SetBitmap(loadImage(syncSelection ? "start_sync_selection" : "start_sync"));
- m_staticTextCaption->SetLabel(syncSelection ?_("Start to synchronize the selection?") : _("Start synchronization now?"));
- m_staticTextSyncVar->SetLabel(getVariantName(syncVar));
+ m_staticTextCaption->SetLabelText(syncSelection ?_("Start to synchronize the selection?") : _("Start synchronization now?"));
+ m_staticTextSyncVar->SetLabelText(getVariantName(syncVar));
const char* varImgName = nullptr;
if (syncVar)
@@ -1203,7 +1202,7 @@ OptionsDlg::OptionsDlg(wxWindow* parent, XmlGlobalSettings& globalSettings) :
m_bpButtonAddRow ->SetBitmapLabel(loadImage("item_add"));
m_bpButtonRemoveRow ->SetBitmapLabel(loadImage("item_remove"));
- m_staticTextAllDialogsShown->SetLabel(L'(' + _("No dialogs hidden") + L')');
+ m_staticTextAllDialogsShown->SetLabelText(L'(' + _("No dialogs hidden") + L')');
m_staticTextResetDialogs->Wrap(std::max(fastFromDIP(250),
m_buttonRestoreDialogs ->GetSize().x +
@@ -1326,9 +1325,9 @@ void OptionsDlg::playSoundWithDiagnostics(const wxString& filePath)
{
try
{
- //wxSOUND_ASYNC: NO failure indication (on Windows)!
+ //::PlaySound() => NO failure indication on Windows! does not set last last error!
//wxSound::Play(..., wxSOUND_SYNC) can return false, but does not provide details!
- //=> check file access manually first:
+ //=> check file access manually:
[[maybe_unused]] std::string stream = getFileContent(utfTo<Zstring>(filePath), nullptr /*notifyUnbufferedIO*/); //throw FileError
[[maybe_unused]] const bool success = wxSound::Play(filePath, wxSOUND_ASYNC);
@@ -1760,11 +1759,11 @@ private:
void updateGui()
{
const double fraction = bytesTotal_ == 0 ? 0 : 1.0 * bytesCurrent_ / bytesTotal_;
- m_staticTextHeader->SetLabel(_("Downloading update...") + L' ' +
- numberTo<std::wstring>(std::lround(fraction * 100)) + L"% (" + formatFilesizeShort(bytesCurrent_) + L')');
+ m_staticTextHeader->SetLabelText(_("Downloading update...") + L' ' +
+ numberTo<std::wstring>(std::lround(fraction * 100)) + L"% (" + formatFilesizeShort(bytesCurrent_) + L')');
m_gaugeProgress->SetValue(std::round(fraction * GAUGE_FULL_RANGE));
- m_staticTextDetails->SetLabel(utfTo<std::wstring>(filePath_));
+ m_staticTextDetails->SetLabelText(utfTo<std::wstring>(filePath_));
}
bool cancelled_ = false;
diff --git a/FreeFileSync/Source/ui/sync_cfg.cpp b/FreeFileSync/Source/ui/sync_cfg.cpp
index 81359450..83ce130c 100644
--- a/FreeFileSync/Source/ui/sync_cfg.cpp
+++ b/FreeFileSync/Source/ui/sync_cfg.cpp
@@ -46,7 +46,7 @@ void initBitmapRadioButtons(const std::vector<std::pair<ToggleButton*, std::stri
auto generateSelectImage = [physicalLeft](wxButton& btn, const std::string& imgName, bool selected)
{
- wxImage imgTxt = createImageFromText(btn.GetLabel(), btn.GetFont(),
+ wxImage imgTxt = createImageFromText(btn.GetLabelText(), btn.GetFont(),
selected ? *wxBLACK : //accessibility: always set both foreground AND background colors! see renderSelectedButton()
btn.GetForegroundColour());
@@ -1297,7 +1297,7 @@ void ConfigDialog::setMiscSyncOptions(const MiscSyncConfig& miscCfg)
wxStaticText* staticTextDevice = dynamic_cast<wxStaticText*>(fgSizerPerf->GetItem(i * 2 + 1)->GetWindow());
spinCtrlParallelOps->SetValue(static_cast<int>(getDeviceParallelOps(deviceParallelOps_, afsDevice)));
- staticTextDevice->SetLabel(AFS::getDisplayPath(AbstractPath(afsDevice, AfsPath())));
+ staticTextDevice->SetLabelText(AFS::getDisplayPath(AbstractPath(afsDevice, AfsPath())));
++i;
}
m_staticTextPerfParallelOps->Enable(enableExtraFeatures_ && !devicesForEdit_.empty());
diff --git a/FreeFileSync/Source/ui/version_check.cpp b/FreeFileSync/Source/ui/version_check.cpp
index 35bd53bb..afe63775 100644
--- a/FreeFileSync/Source/ui/version_check.cpp
+++ b/FreeFileSync/Source/ui/version_check.cpp
@@ -159,7 +159,7 @@ void showUpdateAvailableDialog(wxWindow* parent, const std::string& onlineVersio
try
{
updateDetailsMsg = utfTo<std::wstring>(sendHttpGet(utfTo<Zstring>("https://api.freefilesync.org/latest_changes?" + xWwwFormUrlEncode({{"since", ffsVersion}})),
- ffsUpdateCheckUserAgent, nullptr /*caCertFilePath*/, nullptr /*notifyUnbufferedIO*/).readAll()); //throw SysError
+ ffsUpdateCheckUserAgent, Zstring() /*caCertFilePath*/, nullptr /*notifyUnbufferedIO*/).readAll()); //throw SysError
}
catch (const SysError& e) { updateDetailsMsg = _("Failed to retrieve update information.") + + L"\n\n" + e.toString(); }
@@ -183,7 +183,7 @@ void showUpdateAvailableDialog(wxWindow* parent, const std::string& onlineVersio
std::string getOnlineVersion(const std::vector<std::pair<std::string, std::string>>& postParams) //throw SysError
{
const std::string response = sendHttpPost(Zstr("https://api.freefilesync.org/latest_version"), postParams,
- ffsUpdateCheckUserAgent, nullptr /*caCertFilePath*/, nullptr /*notifyUnbufferedIO*/).readAll(); //throw SysError
+ ffsUpdateCheckUserAgent, Zstring() /*caCertFilePath*/, nullptr /*notifyUnbufferedIO*/).readAll(); //throw SysError
if (response.empty() ||
!std::all_of(response.begin(), response.end(), [](char c) { return isDigit(c) || c == FFS_VERSION_SEPARATOR; }) ||
@@ -326,7 +326,7 @@ std::shared_ptr<const UpdateCheckResult> fff::automaticUpdateCheckRunAsync(const
}
-void fff::automaticUpdateCheckEval(wxWindow* parent, time_t& lastUpdateCheck, std::string& lastOnlineVersion, const UpdateCheckResult* asyncResult)
+void fff::automaticUpdateCheckEval(wxWindow& parent, time_t& lastUpdateCheck, std::string& lastOnlineVersion, const UpdateCheckResult* asyncResult)
{
assert(runningOnMainThread());
@@ -339,7 +339,7 @@ void fff::automaticUpdateCheckEval(wxWindow* parent, time_t& lastUpdateCheck, st
lastOnlineVersion = result.onlineVersion;
if (haveNewerVersionOnline(result.onlineVersion))
- showUpdateAvailableDialog(parent, result.onlineVersion);
+ showUpdateAvailableDialog(&parent, result.onlineVersion);
}
else
{
@@ -347,7 +347,7 @@ void fff::automaticUpdateCheckEval(wxWindow* parent, time_t& lastUpdateCheck, st
{
lastOnlineVersion = "Unknown";
- switch (showConfirmationDialog(parent, DialogInfoType::error, PopupDialogCfg().
+ switch (showConfirmationDialog(&parent, DialogInfoType::error, PopupDialogCfg().
setTitle(_("Check for Program Updates")).
setMainInstructions(_("Cannot find current FreeFileSync version number online. A newer version is likely available. Check manually now?")).
setDetailInstructions(result.error->toString()),
@@ -357,7 +357,8 @@ void fff::automaticUpdateCheckEval(wxWindow* parent, time_t& lastUpdateCheck, st
wxLaunchDefaultBrowser(L"https://freefilesync.org/get_latest.php");
break;
case ConfirmationButton2::accept2: //retry
- automaticUpdateCheckEval(parent, lastUpdateCheck, lastOnlineVersion, asyncResult); //note: retry via recursion!!!
+ automaticUpdateCheckEval(parent, lastUpdateCheck, lastOnlineVersion,
+ automaticUpdateCheckRunAsync(automaticUpdateCheckPrepare(parent).get()).get()); //note: retry via recursion!!!
break;
case ConfirmationButton2::cancel:
break;
diff --git a/FreeFileSync/Source/ui/version_check.h b/FreeFileSync/Source/ui/version_check.h
index 4b17d679..6210b358 100644
--- a/FreeFileSync/Source/ui/version_check.h
+++ b/FreeFileSync/Source/ui/version_check.h
@@ -29,7 +29,7 @@ std::shared_ptr<const UpdateCheckResultPrep> automaticUpdateCheckPrepare(wxWindo
//run on worker thread: (long-running part of the check)
std::shared_ptr<const UpdateCheckResult> automaticUpdateCheckRunAsync(const UpdateCheckResultPrep* resultPrep);
//run on main thread:
-void automaticUpdateCheckEval(wxWindow* parent, time_t& lastUpdateCheck, std::string& lastOnlineVersion,
+void automaticUpdateCheckEval(wxWindow& parent, time_t& lastUpdateCheck, std::string& lastOnlineVersion,
const UpdateCheckResult* asyncResult);
//----------------------------------------------------------------------------
//call from main thread:
diff --git a/FreeFileSync/Source/version/version.h b/FreeFileSync/Source/version/version.h
index 4a4de811..121473b6 100644
--- a/FreeFileSync/Source/version/version.h
+++ b/FreeFileSync/Source/version/version.h
@@ -3,7 +3,7 @@
namespace fff
{
-const char ffsVersion[] = "11.15"; //internal linkage!
+const char ffsVersion[] = "11.16"; //internal linkage!
const char FFS_VERSION_SEPARATOR = '.';
}
diff --git a/libcurl/curl_wrap.cpp b/libcurl/curl_wrap.cpp
new file mode 100644
index 00000000..88bde50e
--- /dev/null
+++ b/libcurl/curl_wrap.cpp
@@ -0,0 +1,398 @@
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: https://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
+
+#include "curl_wrap.h"
+#include <zen/sys_info.h>
+#include <zen/http.h>
+#include <zen/open_ssl.h>
+#include <zen/thread.h>
+ #include <fcntl.h>
+
+using namespace zen;
+
+
+namespace
+{
+int curlInitLevel = 0; //support interleaving initialization calls!
+//zero-initialized POD => not subject to static initialization order fiasco
+}
+
+void zen::libcurlInit()
+{
+ assert(runningOnMainThread()); //all OpenSSL/libssh2/libcurl require init on main thread!
+ assert(curlInitLevel >= 0);
+ if (++curlInitLevel != 1) //non-atomic => require call from main thread
+ return;
+
+
+ openSslInit();
+
+ [[maybe_unused]] const CURLcode rc2 = ::curl_global_init(CURL_GLOBAL_NOTHING /*CURL_GLOBAL_DEFAULT = CURL_GLOBAL_SSL|CURL_GLOBAL_WIN32*/);
+ assert(rc2 == CURLE_OK);
+}
+
+
+void zen::libcurlTearDown()
+{
+ assert(runningOnMainThread()); //+ avoid race condition on "curlInitLevel"
+ assert(curlInitLevel >= 1);
+ if (--curlInitLevel != 0)
+ return;
+
+ ::curl_global_cleanup();
+ openSslTearDown();
+}
+
+
+HttpSession::HttpSession(const Zstring& server, bool useTls, const Zstring& caCertFilePath, std::chrono::seconds timeOut) : //throw SysError
+ serverPrefix_((useTls ? "https://" : "http://") + utfTo<std::string>(server)),
+ caCertFilePath_(utfTo<std::string>(caCertFilePath)),
+ timeOutSec_(timeOut) {}
+
+
+HttpSession::~HttpSession()
+{
+ if (easyHandle_)
+ ::curl_easy_cleanup(easyHandle_);
+}
+
+
+HttpSession::Result HttpSession::perform(const std::string& serverRelPath,
+ const std::vector<std::string>& extraHeaders, const std::vector<CurlOption>& extraOptions,
+ const std::function<void (std::span<const char> buf)>& writeResponse /*throw X*/, //
+ const std::function<size_t(std::span< char> buf)>& readRequest /*throw X*/, //optional
+ const std::function<void (const std::string_view& header)>& receiveHeader /*throw X*/) //throw SysError, X
+{
+ if (!easyHandle_)
+ {
+ easyHandle_ = ::curl_easy_init();
+ if (!easyHandle_)
+ throw SysError(formatSystemError("curl_easy_init", formatCurlStatusCode(CURLE_OUT_OF_MEMORY), L""));
+ }
+ else
+ ::curl_easy_reset(easyHandle_);
+
+
+ std::vector<CurlOption> options;
+
+ char curlErrorBuf[CURL_ERROR_SIZE] = {};
+ options.emplace_back(CURLOPT_ERRORBUFFER, curlErrorBuf);
+
+ options.emplace_back(CURLOPT_USERAGENT, "FreeFileSync"); //default value; may be overwritten by caller
+
+ //lifetime: keep alive until after curl_easy_setopt() below
+ const std::string curlPath = serverPrefix_ + serverRelPath;
+ options.emplace_back(CURLOPT_URL, curlPath.c_str());
+
+ options.emplace_back(CURLOPT_ACCEPT_ENCODING, ""); //libcurl: generate Accept-Encoding header containing all built-in supported encodings
+ //=> usually generates "Accept-Encoding: deflate, gzip" - note: "gzip" used by Google Drive
+
+ options.emplace_back(CURLOPT_NOSIGNAL, 1); //thread-safety: https://curl.haxx.se/libcurl/c/threadsafe.html
+
+ options.emplace_back(CURLOPT_CONNECTTIMEOUT, timeOutSec_.count());
+
+ //CURLOPT_TIMEOUT: "Since this puts a hard limit for how long time a request is allowed to take, it has limited use in dynamic use cases with varying transfer times."
+ options.emplace_back(CURLOPT_LOW_SPEED_TIME, timeOutSec_.count());
+ options.emplace_back(CURLOPT_LOW_SPEED_LIMIT, 1); //[bytes], can't use "0" which means "inactive", so use some low number
+
+
+ std::exception_ptr userCallbackException;
+
+ //libcurl does *not* set FD_CLOEXEC for us! https://github.com/curl/curl/issues/2252
+ auto onSocketCreate = [&](curl_socket_t curlfd, curlsocktype purpose)
+ {
+ assert(::fcntl(curlfd, F_GETFD) == 0);
+ if (::fcntl(curlfd, F_SETFD, FD_CLOEXEC) == -1) //=> RACE-condition if other thread calls fork/execv before this thread sets FD_CLOEXEC!
+ {
+ userCallbackException = std::make_exception_ptr(SysError(formatSystemError("fcntl(FD_CLOEXEC)", errno)));
+ return CURL_SOCKOPT_ERROR;
+ }
+ return CURL_SOCKOPT_OK;
+ };
+
+ using SocketCbType = decltype(onSocketCreate);
+ using SocketCbWrapperType = int (*)(SocketCbType* clientp, curl_socket_t curlfd, curlsocktype purpose); //needed for cdecl function pointer cast
+ SocketCbWrapperType onSocketCreateWrapper = [](SocketCbType* clientp, curl_socket_t curlfd, curlsocktype purpose)
+ {
+ return (*clientp)(curlfd, purpose); //free this poor little C-API from its shackles and redirect to a proper lambda
+ };
+
+ options.emplace_back(CURLOPT_SOCKOPTFUNCTION, onSocketCreateWrapper);
+ options.emplace_back(CURLOPT_SOCKOPTDATA, &onSocketCreate);
+
+ //libcurl forwards this char-string to OpenSSL as is, which - thank god - accepts UTF8
+ if (caCertFilePath_.empty())
+ {
+ options.emplace_back(CURLOPT_CAINFO, 0); //see remarks in ftp.cpp
+ options.emplace_back(CURLOPT_SSL_VERIFYPEER, 0);
+ options.emplace_back(CURLOPT_SSL_VERIFYHOST, 0);
+ }
+ else
+ options.emplace_back(CURLOPT_CAINFO, caCertFilePath_.c_str()); //hopefully latest version from https://curl.haxx.se/docs/caextract.html
+ //CURLOPT_SSL_VERIFYPEER => already active by default
+ //CURLOPT_SSL_VERIFYHOST =>
+
+ //---------------------------------------------------
+ auto onHeaderReceived = [&](const void* buffer, size_t len)
+ {
+ try
+ {
+ receiveHeader({static_cast<const char*>(buffer), len}); //throw X
+ return len;
+ }
+ catch (...)
+ {
+ userCallbackException = std::current_exception();
+ return len + 1; //signal error condition => CURLE_WRITE_ERROR
+ }
+ };
+ using HeaderCbType = decltype(onHeaderReceived);
+ using HeaderCbWrapperType = size_t (*)(const void* buffer, size_t size, size_t nitems, HeaderCbType* callbackData); //needed for cdecl function pointer cast
+ HeaderCbWrapperType onHeaderReceivedWrapper = [](const void* buffer, size_t size, size_t nitems, HeaderCbType* callbackData)
+ {
+ return (*callbackData)(buffer, size * nitems); //free this poor little C-API from its shackles and redirect to a proper lambda
+ };
+ //---------------------------------------------------
+ auto onBytesReceived = [&](const void* buffer, size_t len)
+ {
+ try
+ {
+ writeResponse({static_cast<const char*>(buffer), len}); //throw X
+ return len;
+ }
+ catch (...)
+ {
+ userCallbackException = std::current_exception();
+ return len + 1; //signal error condition => CURLE_WRITE_ERROR
+ }
+ };
+ using ReadCbType = decltype(onBytesReceived);
+ using ReadCbWrapperType = size_t (*)(const void* buffer, size_t size, size_t nitems, ReadCbType* callbackData); //needed for cdecl function pointer cast
+ ReadCbWrapperType onBytesReceivedWrapper = [](const void* buffer, size_t size, size_t nitems, ReadCbType* callbackData)
+ {
+ return (*callbackData)(buffer, size * nitems); //free this poor little C-API from its shackles and redirect to a proper lambda
+ };
+ //---------------------------------------------------
+ auto getBytesToSend = [&](void* buffer, size_t len) -> size_t
+ {
+ try
+ {
+ //libcurl calls back until 0 bytes are returned (Posix read() semantics), or,
+ //if CURLOPT_INFILESIZE_LARGE was set, after exactly this amount of bytes
+ const size_t bytesRead = readRequest({static_cast<char*>(buffer), len});//throw X; return "bytesToRead" bytes unless end of stream!
+ return bytesRead;
+ }
+ catch (...)
+ {
+ userCallbackException = std::current_exception();
+ return CURL_READFUNC_ABORT; //signal error condition => CURLE_ABORTED_BY_CALLBACK
+ }
+ };
+ using WriteCbType = decltype(getBytesToSend);
+ using WriteCbWrapperType = size_t (*)(void* buffer, size_t size, size_t nitems, WriteCbType* callbackData);
+ WriteCbWrapperType getBytesToSendWrapper = [](void* buffer, size_t size, size_t nitems, WriteCbType* callbackData)
+ {
+ return (*callbackData)(buffer, size * nitems); //free this poor little C-API from its shackles and redirect to a proper lambda
+ };
+ //---------------------------------------------------
+ if (receiveHeader)
+ {
+ options.emplace_back(CURLOPT_HEADERDATA, &onHeaderReceived);
+ options.emplace_back(CURLOPT_HEADERFUNCTION, onHeaderReceivedWrapper);
+ }
+ if (writeResponse)
+ {
+ options.emplace_back(CURLOPT_WRITEDATA, &onBytesReceived);
+ options.emplace_back(CURLOPT_WRITEFUNCTION, onBytesReceivedWrapper);
+ }
+ if (readRequest)
+ {
+ if (std::all_of(extraOptions.begin(), extraOptions.end(), [](const CurlOption& o) { return o.option != CURLOPT_POST; }))
+ /**/options.emplace_back(CURLOPT_UPLOAD, 1); //issues HTTP PUT
+ options.emplace_back(CURLOPT_READDATA, &getBytesToSend);
+ options.emplace_back(CURLOPT_READFUNCTION, getBytesToSendWrapper);
+ }
+
+ if (std::any_of(extraOptions.begin(), extraOptions.end(), [](const CurlOption& o) { return o.option == CURLOPT_WRITEFUNCTION || o.option == CURLOPT_READFUNCTION; }))
+ /**/ throw std::logic_error("Contract violation! " + std::string(__FILE__) + ':' + numberTo<std::string>(__LINE__)); //Option already used here!
+
+ if (readRequest && std::any_of(extraOptions.begin(), extraOptions.end(), [](const CurlOption& o) { return o.option == CURLOPT_POSTFIELDS; }))
+ /**/ throw std::logic_error("Contract violation! " + std::string(__FILE__) + ':' + numberTo<std::string>(__LINE__)); //Contradicting options: CURLOPT_READFUNCTION, CURLOPT_POSTFIELDS
+
+ //---------------------------------------------------
+ curl_slist* headers = nullptr; //"libcurl will not copy the entire list so you must keep it!"
+ ZEN_ON_SCOPE_EXIT(::curl_slist_free_all(headers));
+
+ for (const std::string& headerLine : extraHeaders)
+ headers = ::curl_slist_append(headers, headerLine.c_str());
+
+ //WTF!!! 1-sec delay when server doesn't support "Expect: 100-continue"!! https://stackoverflow.com/questions/49670008/how-to-disable-expect-100-continue-in-libcurl
+ headers = ::curl_slist_append(headers, "Expect:"); //guess, what: www.googleapis.com doesn't support it! e.g. gdriveUploadFile()
+
+ if (headers)
+ options.emplace_back(CURLOPT_HTTPHEADER, headers);
+ //---------------------------------------------------
+
+ append(options, extraOptions);
+
+ applyCurlOptions(easyHandle_, options); //throw SysError
+
+ //=======================================================================================================
+ const CURLcode rcPerf = ::curl_easy_perform(easyHandle_);
+ //WTF: curl_easy_perform() considers FTP response codes 4XX, 5XX as failure, but for HTTP response codes 4XX are considered success!! CONSISTENCY, people!!!
+ //=> at least libcurl is aware: CURLOPT_FAILONERROR: "request failure on HTTP response >= 400"; default: "0, do not fail on error"
+ //https://curl.haxx.se/docs/faq.html#curl_doesn_t_return_error_for_HT
+ //=> Curiously Google also screws up in their REST API design and returns HTTP 4XX status for domain-level errors!
+ //=> let caller handle HTTP status to work around this mess!
+
+ if (userCallbackException)
+ std::rethrow_exception(userCallbackException); //throw X
+ //=======================================================================================================
+
+ long httpStatus = 0; //optional
+ /*const CURLcode rc = */ ::curl_easy_getinfo(easyHandle_, CURLINFO_RESPONSE_CODE, &httpStatus);
+
+ if (rcPerf != CURLE_OK)
+ {
+ std::wstring errorMsg = trimCpy(utfTo<std::wstring>(curlErrorBuf)); //optional
+
+ if (httpStatus != 0) //optional
+ errorMsg += (errorMsg.empty() ? L"" : L"\n") + formatHttpError(httpStatus);
+#if 0
+ //utfTo<std::wstring>(::curl_easy_strerror(ec)) is uninteresting
+ //use CURLINFO_OS_ERRNO ?? https://curl.haxx.se/libcurl/c/CURLINFO_OS_ERRNO.html
+ long nativeErrorCode = 0;
+ if (::curl_easy_getinfo(easyHandle, CURLINFO_OS_ERRNO, &nativeErrorCode) == CURLE_OK)
+ if (nativeErrorCode != 0)
+ errorMsg += (errorMsg.empty() ? L"" : L"\n") + std::wstring(L"Native error code: ") + numberTo<std::wstring>(nativeErrorCode);
+#endif
+ throw SysError(formatSystemError("curl_easy_perform", formatCurlStatusCode(rcPerf), errorMsg));
+ }
+
+ lastSuccessfulUseTime_ = std::chrono::steady_clock::now();
+ return {static_cast<int>(httpStatus) /*, contentType ? contentType : ""*/};
+}
+
+
+std::wstring zen::formatCurlStatusCode(CURLcode sc)
+{
+ switch (sc)
+ {
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_OK);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_UNSUPPORTED_PROTOCOL);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_FAILED_INIT);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_URL_MALFORMAT);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_NOT_BUILT_IN);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_COULDNT_RESOLVE_PROXY);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_COULDNT_RESOLVE_HOST);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_COULDNT_CONNECT);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_WEIRD_SERVER_REPLY);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_REMOTE_ACCESS_DENIED);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_FTP_ACCEPT_FAILED);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_FTP_WEIRD_PASS_REPLY);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_FTP_ACCEPT_TIMEOUT);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_FTP_WEIRD_PASV_REPLY);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_FTP_WEIRD_227_FORMAT);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_FTP_CANT_GET_HOST);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_HTTP2);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_FTP_COULDNT_SET_TYPE);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_PARTIAL_FILE);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_FTP_COULDNT_RETR_FILE);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_OBSOLETE20);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_QUOTE_ERROR);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_HTTP_RETURNED_ERROR);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_WRITE_ERROR);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_OBSOLETE24);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_UPLOAD_FAILED);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_READ_ERROR);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_OUT_OF_MEMORY);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_OPERATION_TIMEDOUT);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_OBSOLETE29);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_FTP_PORT_FAILED);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_FTP_COULDNT_USE_REST);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_OBSOLETE32);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_RANGE_ERROR);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_HTTP_POST_ERROR);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_SSL_CONNECT_ERROR);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_BAD_DOWNLOAD_RESUME);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_FILE_COULDNT_READ_FILE);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_LDAP_CANNOT_BIND);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_LDAP_SEARCH_FAILED);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_OBSOLETE40);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_FUNCTION_NOT_FOUND);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_ABORTED_BY_CALLBACK);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_BAD_FUNCTION_ARGUMENT);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_OBSOLETE44);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_INTERFACE_FAILED);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_OBSOLETE46);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_TOO_MANY_REDIRECTS);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_UNKNOWN_OPTION);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_SETOPT_OPTION_SYNTAX);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_OBSOLETE50);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_OBSOLETE51);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_GOT_NOTHING);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_SSL_ENGINE_NOTFOUND);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_SSL_ENGINE_SETFAILED);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_SEND_ERROR);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_RECV_ERROR);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_OBSOLETE57);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_SSL_CERTPROBLEM);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_SSL_CIPHER);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_PEER_FAILED_VERIFICATION);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_BAD_CONTENT_ENCODING);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_LDAP_INVALID_URL);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_FILESIZE_EXCEEDED);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_USE_SSL_FAILED);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_SEND_FAIL_REWIND);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_SSL_ENGINE_INITFAILED);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_LOGIN_DENIED);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_TFTP_NOTFOUND);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_TFTP_PERM);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_REMOTE_DISK_FULL);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_TFTP_ILLEGAL);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_TFTP_UNKNOWNID);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_REMOTE_FILE_EXISTS);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_TFTP_NOSUCHUSER);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_CONV_FAILED);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_CONV_REQD);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_SSL_CACERT_BADFILE);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_REMOTE_FILE_NOT_FOUND);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_SSH);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_SSL_SHUTDOWN_FAILED);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_AGAIN);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_SSL_CRL_BADFILE);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_SSL_ISSUER_ERROR);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_FTP_PRET_FAILED);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_RTSP_CSEQ_ERROR);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_RTSP_SESSION_ERROR);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_FTP_BAD_FILE_LIST);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_CHUNK_FAILED);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_NO_CONNECTION_AVAILABLE);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_SSL_PINNEDPUBKEYNOTMATCH);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_SSL_INVALIDCERTSTATUS);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_HTTP2_STREAM);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_RECURSIVE_API_CALL);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_AUTH_ERROR);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_HTTP3);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_QUIC_CONNECT_ERROR);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_PROXY);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_SSL_CLIENTCERT);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURL_LAST);
+ }
+ static_assert(CURL_LAST == CURLE_SSL_CLIENTCERT + 1);
+
+ return replaceCpy<std::wstring>(L"Curl status %x", L"%x", numberTo<std::wstring>(static_cast<int>(sc)));
+}
+
+
+void zen::applyCurlOptions(CURL* easyHandle, const std::vector<CurlOption>& options) //throw SysError
+{
+ for (const CurlOption& opt : options)
+ if (const CURLcode rc = ::curl_easy_setopt(easyHandle, opt.option, opt.value);
+ rc != CURLE_OK)
+ throw SysError(formatSystemError("curl_easy_setopt(" + numberTo<std::string>(static_cast<int>(opt.option)) + ")",
+ formatCurlStatusCode(rc), utfTo<std::wstring>(::curl_easy_strerror(rc))));
+}
diff --git a/libcurl/curl_wrap.h b/libcurl/curl_wrap.h
index 810d735f..ba9fbc13 100644
--- a/libcurl/curl_wrap.h
+++ b/libcurl/curl_wrap.h
@@ -7,9 +7,11 @@
#ifndef CURL_WRAP_H_2879058325032785032789645
#define CURL_WRAP_H_2879058325032785032789645
-#include <zen/scope_guard.h>
+#include <chrono>
+#include <span>
+#include <functional>
#include <zen/sys_error.h>
-
+#include <zen/zstring.h>
//-------------------------------------------------
@@ -22,6 +24,10 @@
namespace zen
{
+void libcurlInit();
+void libcurlTearDown();
+
+
struct CurlOption
{
template <class T>
@@ -34,128 +40,40 @@ struct CurlOption
uint64_t value = 0;
};
-namespace
-{
-std::wstring formatCurlStatusCode(CURLcode sc)
+
+class HttpSession
{
- switch (sc)
+public:
+ HttpSession(const Zstring& server, bool useTls, const Zstring& caCertFilePath /*optional*/, std::chrono::seconds timeOut); //throw SysError
+ ~HttpSession();
+
+ struct Result
{
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_OK);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_UNSUPPORTED_PROTOCOL);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_FAILED_INIT);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_URL_MALFORMAT);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_NOT_BUILT_IN);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_COULDNT_RESOLVE_PROXY);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_COULDNT_RESOLVE_HOST);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_COULDNT_CONNECT);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_WEIRD_SERVER_REPLY);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_REMOTE_ACCESS_DENIED);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_FTP_ACCEPT_FAILED);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_FTP_WEIRD_PASS_REPLY);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_FTP_ACCEPT_TIMEOUT);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_FTP_WEIRD_PASV_REPLY);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_FTP_WEIRD_227_FORMAT);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_FTP_CANT_GET_HOST);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_HTTP2);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_FTP_COULDNT_SET_TYPE);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_PARTIAL_FILE);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_FTP_COULDNT_RETR_FILE);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_OBSOLETE20);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_QUOTE_ERROR);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_HTTP_RETURNED_ERROR);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_WRITE_ERROR);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_OBSOLETE24);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_UPLOAD_FAILED);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_READ_ERROR);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_OUT_OF_MEMORY);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_OPERATION_TIMEDOUT);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_OBSOLETE29);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_FTP_PORT_FAILED);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_FTP_COULDNT_USE_REST);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_OBSOLETE32);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_RANGE_ERROR);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_HTTP_POST_ERROR);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_SSL_CONNECT_ERROR);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_BAD_DOWNLOAD_RESUME);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_FILE_COULDNT_READ_FILE);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_LDAP_CANNOT_BIND);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_LDAP_SEARCH_FAILED);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_OBSOLETE40);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_FUNCTION_NOT_FOUND);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_ABORTED_BY_CALLBACK);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_BAD_FUNCTION_ARGUMENT);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_OBSOLETE44);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_INTERFACE_FAILED);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_OBSOLETE46);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_TOO_MANY_REDIRECTS);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_UNKNOWN_OPTION);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_SETOPT_OPTION_SYNTAX);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_OBSOLETE50);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_OBSOLETE51);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_GOT_NOTHING);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_SSL_ENGINE_NOTFOUND);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_SSL_ENGINE_SETFAILED);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_SEND_ERROR);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_RECV_ERROR);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_OBSOLETE57);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_SSL_CERTPROBLEM);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_SSL_CIPHER);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_PEER_FAILED_VERIFICATION);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_BAD_CONTENT_ENCODING);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_LDAP_INVALID_URL);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_FILESIZE_EXCEEDED);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_USE_SSL_FAILED);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_SEND_FAIL_REWIND);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_SSL_ENGINE_INITFAILED);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_LOGIN_DENIED);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_TFTP_NOTFOUND);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_TFTP_PERM);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_REMOTE_DISK_FULL);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_TFTP_ILLEGAL);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_TFTP_UNKNOWNID);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_REMOTE_FILE_EXISTS);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_TFTP_NOSUCHUSER);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_CONV_FAILED);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_CONV_REQD);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_SSL_CACERT_BADFILE);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_REMOTE_FILE_NOT_FOUND);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_SSH);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_SSL_SHUTDOWN_FAILED);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_AGAIN);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_SSL_CRL_BADFILE);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_SSL_ISSUER_ERROR);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_FTP_PRET_FAILED);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_RTSP_CSEQ_ERROR);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_RTSP_SESSION_ERROR);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_FTP_BAD_FILE_LIST);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_CHUNK_FAILED);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_NO_CONNECTION_AVAILABLE);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_SSL_PINNEDPUBKEYNOTMATCH);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_SSL_INVALIDCERTSTATUS);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_HTTP2_STREAM);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_RECURSIVE_API_CALL);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_AUTH_ERROR);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_HTTP3);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_QUIC_CONNECT_ERROR);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_PROXY);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_SSL_CLIENTCERT);
- ZEN_CHECK_CASE_FOR_CONSTANT(CURL_LAST);
- }
- static_assert(CURL_LAST == CURLE_SSL_CLIENTCERT + 1);
-
- return replaceCpy<std::wstring>(L"Curl status %x", L"%x", numberTo<std::wstring>(static_cast<int>(sc)));
-}
+ int statusCode = 0;
+ //std::string contentType;
+ };
+ Result perform(const std::string& serverRelPath,
+ const std::vector<std::string>& extraHeaders, const std::vector<CurlOption>& extraOptions,
+ const std::function<void (std::span<const char> buf)>& writeResponse /*throw X*/, //
+ const std::function<size_t(std::span< char> buf)>& readRequest /*throw X*/, //optional
+ const std::function<void (const std::string_view& header)>& receiveHeader /*throw X*/); //throw SysError, X
+ std::chrono::steady_clock::time_point getLastUseTime() const { return lastSuccessfulUseTime_; }
-void applyCurlOptions(CURL* easyHandle, const std::vector<CurlOption>& options) //throw SysError
-{
- for (const CurlOption& opt : options)
- if (const CURLcode rc = ::curl_easy_setopt(easyHandle, opt.option, opt.value);
- rc != CURLE_OK)
- throw SysError(formatSystemError("curl_easy_setopt(" + numberTo<std::string>(static_cast<int>(opt.option)) + ")",
- formatCurlStatusCode(rc), utfTo<std::wstring>(::curl_easy_strerror(rc))));
-}
-}
+private:
+ HttpSession (const HttpSession&) = delete;
+ HttpSession& operator=(const HttpSession&) = delete;
+
+ const std::string serverPrefix_;
+ const std::string caCertFilePath_; //optional
+ const std::chrono::seconds timeOutSec_;
+ CURL* easyHandle_ = nullptr;
+ std::chrono::steady_clock::time_point lastSuccessfulUseTime_ = std::chrono::steady_clock::now();
+};
+
+
+std::wstring formatCurlStatusCode(CURLcode sc);
+void applyCurlOptions(CURL* easyHandle, const std::vector<CurlOption>& options); //throw SysError
}
#else
diff --git a/libcurl/rest.cpp b/libcurl/rest.cpp
deleted file mode 100644
index e80a4961..00000000
--- a/libcurl/rest.cpp
+++ /dev/null
@@ -1,208 +0,0 @@
-// *****************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: https://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
-// *****************************************************************************
-
-#include "rest.h"
-#include <zen/sys_info.h>
-#include <zen/http.h>
- #include <fcntl.h>
-
-using namespace zen;
-
-
-HttpSession::HttpSession(const Zstring& server, const Zstring& caCertFilePath, std::chrono::seconds timeOut) : //throw SysError
- server_(utfTo<std::string>(server)),
- caCertFilePath_(utfTo<std::string>(caCertFilePath)),
- timeOutSec_(timeOut) {}
-
-
-HttpSession::~HttpSession()
-{
- if (easyHandle_)
- ::curl_easy_cleanup(easyHandle_);
-}
-
-
-HttpSession::Result HttpSession::perform(const std::string& serverRelPath,
- const std::vector<std::string>& extraHeaders, const std::vector<CurlOption>& extraOptions, //throw SysError
- const std::function<void (const void* buffer, size_t bytesToWrite)>& writeResponse /*throw X*/, //optional
- const std::function<size_t( void* buffer, size_t bytesToRead )>& readRequest /*throw X*/) //
-{
- if (!easyHandle_)
- {
- easyHandle_ = ::curl_easy_init();
- if (!easyHandle_)
- throw SysError(formatSystemError("curl_easy_init", formatCurlStatusCode(CURLE_OUT_OF_MEMORY), L""));
- }
- else
- ::curl_easy_reset(easyHandle_);
-
-
- std::vector<CurlOption> options;
-
- char curlErrorBuf[CURL_ERROR_SIZE] = {};
- options.emplace_back(CURLOPT_ERRORBUFFER, curlErrorBuf);
-
- options.emplace_back(CURLOPT_USERAGENT, "FreeFileSync"); //default value; may be overwritten by caller
-
- //lifetime: keep alive until after curl_easy_setopt() below
- std::string curlPath = "https://" + server_ + serverRelPath;
- options.emplace_back(CURLOPT_URL, curlPath.c_str());
-
- options.emplace_back(CURLOPT_ACCEPT_ENCODING, "gzip"); //won't hurt + used by Google Drive
-
- options.emplace_back(CURLOPT_NOSIGNAL, 1L); //thread-safety: https://curl.haxx.se/libcurl/c/threadsafe.html
-
- options.emplace_back(CURLOPT_CONNECTTIMEOUT, timeOutSec_.count());
-
- //CURLOPT_TIMEOUT: "Since this puts a hard limit for how long time a request is allowed to take, it has limited use in dynamic use cases with varying transfer times."
- options.emplace_back(CURLOPT_LOW_SPEED_TIME, timeOutSec_.count());
- options.emplace_back(CURLOPT_LOW_SPEED_LIMIT, 1L); //[bytes], can't use "0" which means "inactive", so use some low number
-
-
- std::exception_ptr userCallbackException;
-
- //libcurl does *not* set FD_CLOEXEC for us! https://github.com/curl/curl/issues/2252
- auto onSocketCreate = [&](curl_socket_t curlfd, curlsocktype purpose)
- {
- assert(::fcntl(curlfd, F_GETFD) == 0);
- if (::fcntl(curlfd, F_SETFD, FD_CLOEXEC) == -1) //=> RACE-condition if other thread calls fork/execv before this thread sets FD_CLOEXEC!
- {
- userCallbackException = std::make_exception_ptr(SysError(formatSystemError("fcntl(FD_CLOEXEC)", errno)));
- return CURL_SOCKOPT_ERROR;
- }
- return CURL_SOCKOPT_OK;
- };
-
- using SocketCbType = decltype(onSocketCreate);
- using SocketCbWrapperType = int (*)(SocketCbType* clientp, curl_socket_t curlfd, curlsocktype purpose); //needed for cdecl function pointer cast
- SocketCbWrapperType onSocketCreateWrapper = [](SocketCbType* clientp, curl_socket_t curlfd, curlsocktype purpose)
- {
- return (*clientp)(curlfd, purpose); //free this poor little C-API from its shackles and redirect to a proper lambda
- };
-
- options.emplace_back(CURLOPT_SOCKOPTFUNCTION, onSocketCreateWrapper);
- options.emplace_back(CURLOPT_SOCKOPTDATA, &onSocketCreate);
-
- //libcurl forwards this char-string to OpenSSL as is, which - thank god - accepts UTF8
- options.emplace_back(CURLOPT_CAINFO, caCertFilePath_.c_str()); //hopefully latest version from https://curl.haxx.se/docs/caextract.html
- //CURLOPT_SSL_VERIFYPEER => already active by default
- //CURLOPT_SSL_VERIFYHOST =>
-
- //---------------------------------------------------
- auto onBytesReceived = [&](const void* buffer, size_t len)
- {
- try
- {
- writeResponse(buffer, len); //throw X
- return len;
- }
- catch (...)
- {
- userCallbackException = std::current_exception();
- return len + 1; //signal error condition => CURLE_WRITE_ERROR
- }
- };
- using ReadCbType = decltype(onBytesReceived);
- using ReadCbWrapperType = size_t (*)(const void* buffer, size_t size, size_t nitems, ReadCbType* callbackData); //needed for cdecl function pointer cast
- ReadCbWrapperType onBytesReceivedWrapper = [](const void* buffer, size_t size, size_t nitems, ReadCbType* callbackData)
- {
- return (*callbackData)(buffer, size * nitems); //free this poor little C-API from its shackles and redirect to a proper lambda
- };
- //---------------------------------------------------
- auto getBytesToSend = [&](void* buffer, size_t len) -> size_t
- {
- try
- {
- //libcurl calls back until 0 bytes are returned (Posix read() semantics), or,
- //if CURLOPT_INFILESIZE_LARGE was set, after exactly this amount of bytes
- const size_t bytesRead = readRequest(buffer, len);//throw X; return "bytesToRead" bytes unless end of stream!
- return bytesRead;
- }
- catch (...)
- {
- userCallbackException = std::current_exception();
- return CURL_READFUNC_ABORT; //signal error condition => CURLE_ABORTED_BY_CALLBACK
- }
- };
- using WriteCbType = decltype(getBytesToSend);
- using WriteCbWrapperType = size_t (*)(void* buffer, size_t size, size_t nitems, WriteCbType* callbackData);
- WriteCbWrapperType getBytesToSendWrapper = [](void* buffer, size_t size, size_t nitems, WriteCbType* callbackData)
- {
- return (*callbackData)(buffer, size * nitems); //free this poor little C-API from its shackles and redirect to a proper lambda
- };
- //---------------------------------------------------
- if (writeResponse)
- {
- options.emplace_back(CURLOPT_WRITEDATA, &onBytesReceived);
- options.emplace_back(CURLOPT_WRITEFUNCTION, onBytesReceivedWrapper);
- }
- if (readRequest)
- {
- if (std::all_of(extraOptions.begin(), extraOptions.end(), [](const CurlOption& o) { return o.option != CURLOPT_POST; }))
- /**/options.emplace_back(CURLOPT_UPLOAD, 1L); //issues HTTP PUT
- options.emplace_back(CURLOPT_READDATA, &getBytesToSend);
- options.emplace_back(CURLOPT_READFUNCTION, getBytesToSendWrapper);
- }
-
- if (std::any_of(extraOptions.begin(), extraOptions.end(), [](const CurlOption& o) { return o.option == CURLOPT_WRITEFUNCTION || o.option == CURLOPT_READFUNCTION; }))
- throw std::logic_error("Contract violation! " + std::string(__FILE__) + ':' + numberTo<std::string>(__LINE__)); //Option already used here!
-
- if (readRequest && std::any_of(extraOptions.begin(), extraOptions.end(), [](const CurlOption& o) { return o.option == CURLOPT_POSTFIELDS; }))
- throw std::logic_error("Contract violation! " + std::string(__FILE__) + ':' + numberTo<std::string>(__LINE__)); //Contradicting options: CURLOPT_READFUNCTION, CURLOPT_POSTFIELDS
-
- //---------------------------------------------------
- curl_slist* headers = nullptr; //"libcurl will not copy the entire list so you must keep it!"
- ZEN_ON_SCOPE_EXIT(::curl_slist_free_all(headers));
-
- for (const std::string& headerLine : extraHeaders)
- headers = ::curl_slist_append(headers, headerLine.c_str());
-
- //WTF!!! 1-sec delay when server doesn't support "Expect: 100-continue"!! https://stackoverflow.com/questions/49670008/how-to-disable-expect-100-continue-in-libcurl
- headers = ::curl_slist_append(headers, "Expect:"); //guess, what: www.googleapis.com doesn't support it! e.g. gdriveUploadFile()
-
- if (headers)
- options.emplace_back(CURLOPT_HTTPHEADER, headers);
- //---------------------------------------------------
-
- append(options, extraOptions);
-
- applyCurlOptions(easyHandle_, options); //throw SysError
-
- //=======================================================================================================
- const CURLcode rcPerf = ::curl_easy_perform(easyHandle_);
- //WTF: curl_easy_perform() considers FTP response codes 4XX, 5XX as failure, but for HTTP response codes 4XX are considered success!! CONSISTENCY, people!!!
- //=> at least libcurl is aware: CURLOPT_FAILONERROR: "request failure on HTTP response >= 400"; default: "0, do not fail on error"
- //https://curl.haxx.se/docs/faq.html#curl_doesn_t_return_error_for_HT
- //=> Curiously Google also screws up in their REST API design and returns HTTP 4XX status for domain-level errors!
- //=> let caller handle HTTP status to work around this mess!
-
- if (userCallbackException)
- std::rethrow_exception(userCallbackException); //throw X
- //=======================================================================================================
-
- long httpStatus = 0; //optional
- /*const CURLcode rc = */ ::curl_easy_getinfo(easyHandle_, CURLINFO_RESPONSE_CODE, &httpStatus);
-
- if (rcPerf != CURLE_OK)
- {
- std::wstring errorMsg = trimCpy(utfTo<std::wstring>(curlErrorBuf)); //optional
-
- if (httpStatus != 0) //optional
- errorMsg += (errorMsg.empty() ? L"" : L"\n") + formatHttpError(httpStatus);
-#if 0
- //utfTo<std::wstring>(::curl_easy_strerror(ec)) is uninteresting
- //use CURLINFO_OS_ERRNO ?? https://curl.haxx.se/libcurl/c/CURLINFO_OS_ERRNO.html
- long nativeErrorCode = 0;
- if (::curl_easy_getinfo(easyHandle, CURLINFO_OS_ERRNO, &nativeErrorCode) == CURLE_OK)
- if (nativeErrorCode != 0)
- errorMsg += (errorMsg.empty() ? L"" : L"\n") + std::wstring(L"Native error code: ") + numberTo<std::wstring>(nativeErrorCode);
-#endif
- throw SysError(formatSystemError("curl_easy_perform", formatCurlStatusCode(rcPerf), errorMsg));
- }
-
- lastSuccessfulUseTime_ = std::chrono::steady_clock::now();
- return {static_cast<int>(httpStatus) /*, contentType ? contentType : ""*/};
-}
diff --git a/libcurl/rest.h b/libcurl/rest.h
deleted file mode 100644
index df41a3cc..00000000
--- a/libcurl/rest.h
+++ /dev/null
@@ -1,52 +0,0 @@
-// *****************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: https://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
-// *****************************************************************************
-
-#ifndef REST_H_07018456781346523454
-#define REST_H_07018456781346523454
-
-#include <chrono>
-#include <functional>
-#include <zen/sys_error.h>
-#include <zen/zstring.h>
-#include "curl_wrap.h" //DON'T include <curl/curl.h> directly!
-
-
-namespace zen
-{
-//Initialization requirement: 1. WSAStartup 2. OpenSSL 3. curl_global_init()
-// => use UniCounterCookie!
-
-class HttpSession
-{
-public:
- HttpSession(const Zstring& server, const Zstring& caCertFilePath, std::chrono::seconds timeOut); //throw SysError
- ~HttpSession();
-
- struct Result
- {
- int statusCode = 0;
- //std::string contentType;
- };
- Result perform(const std::string& serverRelPath,
- const std::vector<std::string>& extraHeaders, const std::vector<CurlOption>& extraOptions, //throw SysError
- const std::function<void (const void* buffer, size_t bytesToWrite)>& writeResponse /*throw X*/, //optional
- const std::function<size_t( void* buffer, size_t bytesToRead )>& readRequest /*throw X*/); //
-
- std::chrono::steady_clock::time_point getLastUseTime() const { return lastSuccessfulUseTime_; }
-
-private:
- HttpSession (const HttpSession&) = delete;
- HttpSession& operator=(const HttpSession&) = delete;
-
- const std::string server_;
- const std::string caCertFilePath_;
- const std::chrono::seconds timeOutSec_;
- CURL* easyHandle_ = nullptr;
- std::chrono::steady_clock::time_point lastSuccessfulUseTime_ = std::chrono::steady_clock::now();
-};
-}
-
-#endif //REST_H_07018456781346523454
diff --git a/libssh2/libssh2_wrap.h b/libssh2/libssh2_wrap.h
index 1b16bad2..d4365538 100644
--- a/libssh2/libssh2_wrap.h
+++ b/libssh2/libssh2_wrap.h
@@ -112,7 +112,7 @@ inline int libssh2_sftp_rename(LIBSSH2_SFTP* sftp, const std::string& pathFrom,
{
return libssh2_sftp_rename_ex(sftp,
pathFrom.c_str(), static_cast<unsigned int>(pathFrom.size()),
- pathTo.c_str(), static_cast<unsigned int>(pathTo.size()), flags);
+ pathTo .c_str(), static_cast<unsigned int>(pathTo.size()), flags);
}
diff --git a/wx+/image_tools.cpp b/wx+/image_tools.cpp
index b519aac2..b8876dc3 100644
--- a/wx+/image_tools.cpp
+++ b/wx+/image_tools.cpp
@@ -180,10 +180,7 @@ wxImage zen::stackImages(const wxImage& img1, const wxImage& img2, ImageStackLay
wxImage zen::createImageFromText(const wxString& text, const wxFont& font, const wxColor& col, ImageStackAlignment textAlign)
{
- //assert(!contains(text, L"&")); //accelerator keys not supported here
- wxString textFmt = replaceCpy(text, L"&", L"", false);
-
- const std::vector<std::pair<wxString, wxSize>> lineInfo = getTextExtentInfo(textFmt, font);
+ const std::vector<std::pair<wxString, wxSize>> lineInfo = getTextExtentInfo(text, font);
int maxWidth = 0;
int lineHeight = 0;
diff --git a/wx+/no_flicker.h b/wx+/no_flicker.h
index a84a7228..d8f2d6cd 100644
--- a/wx+/no_flicker.h
+++ b/wx+/no_flicker.h
@@ -30,15 +30,17 @@ void setText(wxTextCtrl& control, const wxString& newText, bool* additionalLayou
}
-void setText(wxStaticText& control, wxString newText, bool* additionalLayoutChange = nullptr)
+void setText(wxStaticText& control, const wxString& newText, bool* additionalLayoutChange = nullptr)
{
+ //wxControl::EscapeMnemonics() (& -> &&) => wxControl::GetLabelText/SetLabelText
+ //e.g. "filenames in the sync progress dialog": https://sourceforge.net/p/freefilesync/bugs/279/
- const wxString& label = control.GetLabel(); //perf: don't call twice!
+ const wxString& label = control.GetLabelText(); //perf: don't call twice!
if (additionalLayoutChange && !*additionalLayoutChange)
*additionalLayoutChange = label.length() != newText.length(); //avoid screen flicker: update layout only when necessary
if (label != newText)
- control.SetLabel(newText);
+ control.SetLabelText(newText);
}
diff --git a/wx+/popup_dlg.cpp b/wx+/popup_dlg.cpp
index 3d4077c3..703371c2 100644
--- a/wx+/popup_dlg.cpp
+++ b/wx+/popup_dlg.cpp
@@ -16,7 +16,7 @@
#include "popup_dlg_generated.h"
#include "std_button_layout.h"
#include "taskbar.h"
- #include "window_tools.h"
+#include "window_tools.h"
using namespace zen;
@@ -155,19 +155,16 @@ public:
int maxWidth = fastFromDIP(500);
int maxHeight = fastFromDIP(400); //try to determine better value based on actual display resolution:
-
if (parent)
- {
- const int disPos = wxDisplay::GetFromWindow(parent); //window must be visible
- if (disPos != wxNOT_FOUND)
+ if (const int disPos = wxDisplay::GetFromWindow(parent); //window must be visible
+ disPos != wxNOT_FOUND)
maxHeight = wxDisplay(disPos).GetClientArea().GetHeight() * 2 / 3;
- }
assert(!cfg.textMain.empty() || !cfg.textDetail.empty());
if (!cfg.textMain.empty())
{
setMainInstructionFont(*m_staticTextMain);
- m_staticTextMain->SetLabel(cfg.textMain);
+ m_staticTextMain->SetLabelText(cfg.textMain);
m_staticTextMain->Wrap(maxWidth); //call *after* SetLabel()
}
else
@@ -175,10 +172,7 @@ public:
if (!cfg.textDetail.empty())
{
- wxString text;
- if (!cfg.textMain.empty())
- text += L'\n';
- text += trimCpy(cfg.textDetail) + L'\n'; //add empty top/bottom lines *instead* of using border space!
+ const wxString& text = trimCpy(cfg.textDetail) + L'\n'; //add empty line *instead* of using border space!
setBestInitialSize(*m_richTextDetail, text, wxSize(maxWidth, maxHeight));
setTextWithUrls(*m_richTextDetail, text);
diff --git a/wx+/popup_dlg.h b/wx+/popup_dlg.h
index 11e96e3b..12c19c14 100644
--- a/wx+/popup_dlg.h
+++ b/wx+/popup_dlg.h
@@ -69,7 +69,7 @@ struct PopupDialogCfg
PopupDialogCfg& setMainInstructions (const wxString& label) { textMain = label; return *this; } //set at least one of these!
PopupDialogCfg& setDetailInstructions(const wxString& label) { textDetail = label; return *this; } //
PopupDialogCfg& disableButton(ConfirmationButton3 button) { disabledButtons.insert(button); return *this; }
- PopupDialogCfg& remindWhenPending(const Zstring& soundFilePath) { soundFileAlertPending = soundFilePath; return *this; }
+ PopupDialogCfg& alertWhenPending(const Zstring& soundFilePath) { soundFileAlertPending = soundFilePath; return *this; }
PopupDialogCfg& setCheckBox(bool& value, const wxString& label, ConfirmationButton3 disableWhenChecked = ConfirmationButton3::cancel)
{
checkBoxValue = &value;
diff --git a/wx+/popup_dlg_generated.cpp b/wx+/popup_dlg_generated.cpp
index 22e3d02c..43841437 100644
--- a/wx+/popup_dlg_generated.cpp
+++ b/wx+/popup_dlg_generated.cpp
@@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////
-// C++ code generated with wxFormBuilder (version Oct 26 2018)
+// C++ code generated with wxFormBuilder (version 3.10.1-0-g8feb16b3)
// http://www.wxformbuilder.org/
//
// PLEASE DO *NOT* EDIT THIS FILE!
@@ -11,88 +11,88 @@
PopupDialogGenerated::PopupDialogGenerated( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
{
- this->SetSizeHints( wxSize( -1, -1 ), wxDefaultSize );
- this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+ this->SetSizeHints( wxSize( -1,-1 ), wxDefaultSize );
+ this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
- wxBoxSizer* bSizer24;
- bSizer24 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer24;
+ bSizer24 = new wxBoxSizer( wxVERTICAL );
- m_panel33 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panel33->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_panel33 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panel33->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- wxBoxSizer* bSizer165;
- bSizer165 = new wxBoxSizer( wxHORIZONTAL );
+ wxBoxSizer* bSizer165;
+ bSizer165 = new wxBoxSizer( wxHORIZONTAL );
- m_bitmapMsgType = new wxStaticBitmap( m_panel33, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1, -1 ), 0 );
- bSizer165->Add( m_bitmapMsgType, 0, wxALL, 10 );
+ m_bitmapMsgType = new wxStaticBitmap( m_panel33, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizer165->Add( m_bitmapMsgType, 0, wxALL, 10 );
- wxBoxSizer* bSizer16;
- bSizer16 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer16;
+ bSizer16 = new wxBoxSizer( wxVERTICAL );
- bSizer16->Add( 0, 10, 0, 0, 5 );
+ bSizer16->Add( 0, 10, 0, 0, 5 );
- m_staticTextMain = new wxStaticText( m_panel33, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextMain->Wrap( -1 );
- bSizer16->Add( m_staticTextMain, 0, wxRIGHT, 10 );
+ m_staticTextMain = new wxStaticText( m_panel33, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextMain->Wrap( -1 );
+ bSizer16->Add( m_staticTextMain, 0, wxBOTTOM|wxRIGHT, 10 );
- m_richTextDetail = new wxRichTextCtrl( m_panel33, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY|wxBORDER_NONE|wxVSCROLL|wxWANTS_CHARS );
- bSizer16->Add( m_richTextDetail, 1, wxEXPAND, 5 );
+ m_richTextDetail = new wxRichTextCtrl( m_panel33, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY|wxBORDER_NONE|wxVSCROLL|wxWANTS_CHARS );
+ bSizer16->Add( m_richTextDetail, 1, wxEXPAND, 5 );
- bSizer165->Add( bSizer16, 1, wxEXPAND, 5 );
+ bSizer165->Add( bSizer16, 1, wxEXPAND, 5 );
- m_panel33->SetSizer( bSizer165 );
- m_panel33->Layout();
- bSizer165->Fit( m_panel33 );
- bSizer24->Add( m_panel33, 1, wxEXPAND, 5 );
+ m_panel33->SetSizer( bSizer165 );
+ m_panel33->Layout();
+ bSizer165->Fit( m_panel33 );
+ bSizer24->Add( m_panel33, 1, wxEXPAND, 5 );
- m_staticline6 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer24->Add( m_staticline6, 0, wxEXPAND, 5 );
+ m_staticline6 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer24->Add( m_staticline6, 0, wxEXPAND, 5 );
- wxBoxSizer* bSizer25;
- bSizer25 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizer25;
+ bSizer25 = new wxBoxSizer( wxVERTICAL );
- m_checkBoxCustom = new wxCheckBox( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- bSizer25->Add( m_checkBoxCustom, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
+ m_checkBoxCustom = new wxCheckBox( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer25->Add( m_checkBoxCustom, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
- bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
+ bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
- m_buttonAccept = new wxButton( this, wxID_YES, _("dummy"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
+ m_buttonAccept = new wxButton( this, wxID_YES, _("dummy"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonAccept->SetDefault();
- bSizerStdButtons->Add( m_buttonAccept, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+ m_buttonAccept->SetDefault();
+ bSizerStdButtons->Add( m_buttonAccept, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
- m_buttonAccept2 = new wxButton( this, wxID_YESTOALL, _("dummy"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
- bSizerStdButtons->Add( m_buttonAccept2, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
+ m_buttonAccept2 = new wxButton( this, wxID_YESTOALL, _("dummy"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizerStdButtons->Add( m_buttonAccept2, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
- m_buttonDecline = new wxButton( this, wxID_NO, _("dummy"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
- bSizerStdButtons->Add( m_buttonDecline, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
+ m_buttonDecline = new wxButton( this, wxID_NO, _("dummy"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizerStdButtons->Add( m_buttonDecline, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
- m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1, -1 ), 0 );
- bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
+ m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
- bSizer25->Add( bSizerStdButtons, 0, wxALIGN_RIGHT, 5 );
+ bSizer25->Add( bSizerStdButtons, 0, wxALIGN_RIGHT, 5 );
- bSizer24->Add( bSizer25, 0, wxEXPAND, 5 );
+ bSizer24->Add( bSizer25, 0, wxEXPAND, 5 );
- this->SetSizer( bSizer24 );
- this->Layout();
- bSizer24->Fit( this );
+ this->SetSizer( bSizer24 );
+ this->Layout();
+ bSizer24->Fit( this );
- this->Centre( wxBOTH );
+ this->Centre( wxBOTH );
- // Connect Events
- this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( PopupDialogGenerated::onClose ) );
- m_checkBoxCustom->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( PopupDialogGenerated::onCheckBoxClick ), NULL, this );
- m_buttonAccept->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PopupDialogGenerated::onButtonAccept ), NULL, this );
- m_buttonAccept2->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PopupDialogGenerated::onButtonAccept2 ), NULL, this );
- m_buttonDecline->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PopupDialogGenerated::onButtonDecline ), NULL, this );
- m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PopupDialogGenerated::onCancel ), NULL, this );
+ // Connect Events
+ this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( PopupDialogGenerated::onClose ) );
+ m_checkBoxCustom->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( PopupDialogGenerated::onCheckBoxClick ), NULL, this );
+ m_buttonAccept->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PopupDialogGenerated::onButtonAccept ), NULL, this );
+ m_buttonAccept2->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PopupDialogGenerated::onButtonAccept2 ), NULL, this );
+ m_buttonDecline->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PopupDialogGenerated::onButtonDecline ), NULL, this );
+ m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PopupDialogGenerated::onCancel ), NULL, this );
}
PopupDialogGenerated::~PopupDialogGenerated()
diff --git a/wx+/popup_dlg_generated.h b/wx+/popup_dlg_generated.h
index 93842d17..d7dcf5fd 100644
--- a/wx+/popup_dlg_generated.h
+++ b/wx+/popup_dlg_generated.h
@@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////
-// C++ code generated with wxFormBuilder (version Oct 26 2018)
+// C++ code generated with wxFormBuilder (version 3.10.1-0-g8feb16b3)
// http://www.wxformbuilder.org/
//
// PLEASE DO *NOT* EDIT THIS FILE!
@@ -38,34 +38,35 @@
///////////////////////////////////////////////////////////////////////////////
class PopupDialogGenerated : public wxDialog
{
-private:
+ private:
-protected:
- wxPanel* m_panel33;
- wxStaticBitmap* m_bitmapMsgType;
- wxStaticText* m_staticTextMain;
- wxRichTextCtrl* m_richTextDetail;
- wxStaticLine* m_staticline6;
- wxCheckBox* m_checkBoxCustom;
- wxBoxSizer* bSizerStdButtons;
- wxButton* m_buttonAccept;
- wxButton* m_buttonAccept2;
- wxButton* m_buttonDecline;
- wxButton* m_buttonCancel;
+ protected:
+ wxPanel* m_panel33;
+ wxStaticBitmap* m_bitmapMsgType;
+ wxStaticText* m_staticTextMain;
+ wxRichTextCtrl* m_richTextDetail;
+ wxStaticLine* m_staticline6;
+ wxCheckBox* m_checkBoxCustom;
+ wxBoxSizer* bSizerStdButtons;
+ wxButton* m_buttonAccept;
+ wxButton* m_buttonAccept2;
+ wxButton* m_buttonDecline;
+ wxButton* m_buttonCancel;
- // Virtual event handlers, overide them in your derived class
- virtual void onClose( wxCloseEvent& event ) { event.Skip(); }
- virtual void onCheckBoxClick( wxCommandEvent& event ) { event.Skip(); }
- virtual void onButtonAccept( wxCommandEvent& event ) { event.Skip(); }
- virtual void onButtonAccept2( wxCommandEvent& event ) { event.Skip(); }
- virtual void onButtonDecline( wxCommandEvent& event ) { event.Skip(); }
- virtual void onCancel( wxCommandEvent& event ) { event.Skip(); }
+ // Virtual event handlers, override them in your derived class
+ virtual void onClose( wxCloseEvent& event ) { event.Skip(); }
+ virtual void onCheckBoxClick( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onButtonAccept( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onButtonAccept2( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onButtonDecline( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onCancel( wxCommandEvent& event ) { event.Skip(); }
-public:
+ public:
- PopupDialogGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("dummy"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
- ~PopupDialogGenerated();
+ PopupDialogGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("dummy"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
+
+ ~PopupDialogGenerated();
};
diff --git a/wx+/tooltip.cpp b/wx+/tooltip.cpp
index e3c021c6..63a004bd 100644
--- a/wx+/tooltip.cpp
+++ b/wx+/tooltip.cpp
@@ -67,10 +67,10 @@ void Tooltip::show(const wxString& text, wxPoint mousePos, const wxImage* img)
tipWindow_->bitmapLeft_->SetBitmap(newImg);
tipWindow_->Refresh(); //needed if bitmap size changed!
}
-
- if (text != tipWindow_->staticTextMain_->GetLabel())
+
+ if (text != tipWindow_->staticTextMain_->GetLabelText())
{
- tipWindow_->staticTextMain_->SetLabel(text);
+ tipWindow_->staticTextMain_->SetLabelText(text);
tipWindow_->staticTextMain_->Wrap(fastFromDIP(600));
}
diff --git a/zen/file_access.cpp b/zen/file_access.cpp
index 6940b22f..2fbcf803 100644
--- a/zen/file_access.cpp
+++ b/zen/file_access.cpp
@@ -17,7 +17,7 @@
#include "guid.h"
#include <sys/vfs.h> //statfs
- #include <sys/time.h> //lutimes
+ //#include <sys/time.h> //lutimes
#ifdef HAVE_SELINUX
#include <selinux/selinux.h>
#endif
@@ -309,42 +309,51 @@ namespace
{
void setWriteTimeNative(const Zstring& itemPath, const timespec& modTime, ProcSymlink procSl) //throw FileError
{
- /*
- [2013-05-01] sigh, we can't use utimensat() on NTFS volumes on Ubuntu: silent failure!!! what morons are programming this shit???
- => fallback to "retarded-idiot version"! -- DarkByte
-
- [2015-03-09]
- - cannot reproduce issues with NTFS and utimensat() on Ubuntu
- - utimensat() is supposed to obsolete utime/utimes and is also used by "cp" and "touch"
- => let's give utimensat another chance:
- using open()/futimens() for regular files and utimensat(AT_SYMLINK_NOFOLLOW) for symlinks is consistent with "cp" and "touch"!
- */
+ /* [2013-05-01] sigh, we can't use utimensat() on NTFS volumes on Ubuntu: silent failure!!! what morons are programming this shit???
+ => fallback to "retarded-idiot version"! -- DarkByte
+
+ [2015-03-09]
+ - cannot reproduce issues with NTFS and utimensat() on Ubuntu
+ - utimensat() is supposed to obsolete utime/utimes and is also used by "cp" and "touch"
+ => let's give utimensat another chance:
+ using open()/futimens() for regular files and utimensat(AT_SYMLINK_NOFOLLOW) for symlinks is consistent with "cp" and "touch"!
+ cp: https://github.com/coreutils/coreutils/blob/master/src/cp.c
+ => utimens: https://github.com/coreutils/gnulib/blob/master/lib/utimens.c
+ touch: https://github.com/coreutils/coreutils/blob/master/src/touch.c
+ => fdutimensat: https://github.com/coreutils/gnulib/blob/master/lib/fdutimensat.c */
timespec newTimes[2] = {};
- newTimes[0].tv_sec = ::time(nullptr); //access time; using UTIME_OMIT for tv_nsec would trigger even more bugs: https://freefilesync.org/forum/viewtopic.php?t=1701
+ newTimes[0].tv_sec = ::time(nullptr); //access time; don't use UTIME_NOW/UTIME_OMIT: more bugs! https://freefilesync.org/forum/viewtopic.php?t=1701
newTimes[1] = modTime; //modification time
//test: even modTime == 0 is correctly applied (no NOOP!) test2: same behavior for "utime()"
- if (procSl == ProcSymlink::follow)
+ //hell knows why files on gvfs-mounted Samba shares fail to open(O_WRONLY) returning EOPNOTSUPP:
+ //https://freefilesync.org/forum/viewtopic.php?t=2803 => utimensat() works (but not for gvfs SFTP)
+ if (::utimensat(AT_FDCWD, itemPath.c_str(), newTimes, procSl == ProcSymlink::direct ? AT_SYMLINK_NOFOLLOW : 0) == 0)
+ return;
+ try
{
- //hell knows why files on gvfs-mounted Samba shares fail to open(O_WRONLY) returning EOPNOTSUPP:
- //https://freefilesync.org/forum/viewtopic.php?t=2803 => utimensat() works (but not for gvfs SFTP)
- if (::utimensat(AT_FDCWD, itemPath.c_str(), newTimes, 0) == 0)
- return;
+ if (procSl == ProcSymlink::direct)
+ try
+ {
+ if (getItemType(itemPath) == ItemType::symlink) //throw FileError
+ THROW_LAST_SYS_ERROR("utimensat(AT_SYMLINK_NOFOLLOW)"); //use lutimes()? just a wrapper around utimensat()!
+ //else: fall back
+ }
+ catch (const FileError& e) { throw SysError(e.toString()); }
//in other cases utimensat() returns EINVAL for CIFS/NTFS drives, but open+futimens works: https://freefilesync.org/forum/viewtopic.php?t=387
- const int fdFile = ::open(itemPath.c_str(), O_WRONLY | O_APPEND | O_CLOEXEC); //2017-07-04: O_WRONLY | O_APPEND seems to avoid EOPNOTSUPP on gvfs SFTP!
+ //2017-07-04: O_WRONLY | O_APPEND seems to avoid EOPNOTSUPP on gvfs SFTP!
+ const int fdFile = ::open(itemPath.c_str(), O_WRONLY | O_APPEND | O_CLOEXEC);
if (fdFile == -1)
- THROW_LAST_FILE_ERROR(replaceCpy(_("Cannot write modification time of %x."), L"%x", fmtPath(itemPath)), "open");
+ THROW_LAST_SYS_ERROR("open");
ZEN_ON_SCOPE_EXIT(::close(fdFile));
if (::futimens(fdFile, newTimes) != 0)
- THROW_LAST_FILE_ERROR(replaceCpy(_("Cannot write modification time of %x."), L"%x", fmtPath(itemPath)), "futimens");
- }
- else
- {
- if (::utimensat(AT_FDCWD, itemPath.c_str(), newTimes, AT_SYMLINK_NOFOLLOW) != 0)
- THROW_LAST_FILE_ERROR(replaceCpy(_("Cannot write modification time of %x."), L"%x", fmtPath(itemPath)), "utimensat");
+ THROW_LAST_SYS_ERROR("futimens");
+
+ //need more fallbacks? e.g. futimes()? careful, bugs! futimes() rounds instead of truncates when falling back on utime()!
}
+ catch (const SysError& e) { throw FileError(replaceCpy(_("Cannot write modification time of %x."), L"%x", fmtPath(itemPath)), e.toString()); }
}
diff --git a/zen/http.cpp b/zen/http.cpp
index 05ed81d1..fe3b8c4c 100644
--- a/zen/http.cpp
+++ b/zen/http.cpp
@@ -5,11 +5,15 @@
// *****************************************************************************
#include "http.h"
- #include "socket.h"
- #include "open_ssl.h"
+
+ #include <libcurl/curl_wrap.h> //DON'T include <curl/curl.h> directly!
+ #include "stream_buffer.h"
+ #include "thread.h"
using namespace zen;
+const std::chrono::seconds HTTP_ACCESS_TIME_OUT(20);
+
@@ -17,15 +21,15 @@ class HttpInputStream::Impl
{
public:
Impl(const Zstring& url,
- const std::string* postBuf /*issue POST if bound, GET otherwise*/,
+ const std::string* postBuf, //issue POST if bound, GET otherwise
const std::string& contentType, //required for POST
- bool disableGetCache /*not relevant for POST (= never cached)*/,
+ bool disableGetCache, //not relevant for POST (= never cached)
const Zstring& userAgent,
- const Zstring* caCertFilePath /*optional: enable certificate validation*/,
- const IoCallback& notifyUnbufferedIO) : //throw SysError, X
+ const Zstring& caCertFilePath, //optional: enable certificate validation
+ const IoCallback& notifyUnbufferedIO /*throw X*/) : //throw SysError, X
notifyUnbufferedIO_(notifyUnbufferedIO)
{
- ZEN_ON_SCOPE_FAIL(cleanup(); /*destructor call would lead to member double clean-up!!!*/);
+ ZEN_ON_SCOPE_FAIL(cleanup()); //destructor call would lead to member double clean-up!!!
//may be sending large POST: call back first
if (notifyUnbufferedIO_) notifyUnbufferedIO_(0); //throw X
@@ -43,76 +47,95 @@ public:
throw SysError(L"URL uses unexpected protocol.");
}();
- assert(postBuf || contentType.empty());
-
std::map<std::string, std::string, LessAsciiNoCase> headers;
+ assert(postBuf || contentType.empty());
if (postBuf && !contentType.empty())
headers["Content-Type"] = contentType;
- if (useTls) //HTTP default port: 443, see %WINDIR%\system32\drivers\etc\services
- {
- socket_ = std::make_unique<Socket>(server, Zstr("https")); //throw SysError
- tlsCtx_ = std::make_unique<TlsContext>(socket_->get(), server, caCertFilePath); //throw SysError
- }
- else //HTTP default port: 80, see %WINDIR%\system32\drivers\etc\services
- socket_ = std::make_unique<Socket>(server, Zstr("http")); //throw SysError
-
- //we don't support "chunked and gzip transfer encoding" => HTTP 1.0 => no "Content-Length" support!
- headers["Host" ] = utfTo<std::string>(server); //only required for HTTP/1.1 but a few servers expect it even for HTTP/1.0
- headers["User-Agent"] = utfTo<std::string>(userAgent);
- headers["Accept" ] = "*/*"; //won't hurt?
-
- if (!postBuf /*HTTP GET*/ && disableGetCache)
- headers["Pragma"] = "no-cache"; //HTTP 1.0 only! superseeded by "Cache-Control"
-
- if (postBuf)
- headers["Content-Length"] = numberTo<std::string>(postBuf->size());
-
- //https://www.w3.org/Protocols/HTTP/1.0/spec.html#Request-Line
- std::string msg = (postBuf ? "POST " : "GET ") + utfTo<std::string>(page) + " HTTP/1.0\r\n";
- for (const auto& [name, value] : headers)
- msg += name + ": " + value + "\r\n";
- msg += "\r\n";
- if (postBuf)
- msg += *postBuf;
-
- //send request
- for (size_t bytesToSend = msg.size(); bytesToSend > 0;)
- bytesToSend -= tlsCtx_ ?
- tlsCtx_->tryWrite( &*(msg.end() - bytesToSend), bytesToSend) : //throw SysError
- tryWriteSocket(socket_->get(), &*(msg.end() - bytesToSend), bytesToSend); //throw SysError
-
- //shutdownSocketSend(socket_->get()); //throw SysError
- //NO! Sending TCP FIN before receiving response (aka "TCP Half Closed") is not always supported! e.g. Cloudflare server will immediately end connection: recv() returns 0.
- //"clients SHOULD NOT half-close their TCP connections": https://github.com/httpwg/http-core/issues/22
-
- //receive response:
- std::string headBuf;
- const std::string headerDelim = "\r\n\r\n";
- for (std::string buf;;)
+ if (!postBuf /*=> HTTP GET*/ && disableGetCache) //libcurl doesn't cache internally, so it should be enough to set this header
+ headers["Cache-Control"] = "no-cache"; //= similar to WinInet's INTERNET_FLAG_RELOAD
+ //caveat: INTERNET_FLAG_RELOAD issues "Pragma: no-cache" instead if "request is going through a proxy"
+
+
+ auto promiseHeader = std::make_shared<std::promise<std::string>>();
+ std::future<std::string> futHeader = promiseHeader->get_future();
+
+ worker_ = InterruptibleThread([asyncStreamOut = this->asyncStreamIn_, promiseHeader, headers = std::move(headers),
+ server, useTls, caCertFilePath, userAgent = utfTo<std::string>(userAgent),
+ postBuf = postBuf ? std::optional<std::string>(*postBuf) : std::nullopt, //[!] life-time!
+ serverRelPath = utfTo<std::string>(page)]
{
- const size_t blockSize = std::min(static_cast<size_t>(1024), memBuf_.size()); //smaller block size: try to only read header part
- buf.resize(buf.size() + blockSize);
- const size_t bytesReceived = tryRead(&*(buf.end() - blockSize), blockSize); //throw SysError
- buf.resize(buf.size() - (blockSize - bytesReceived)); //caveat: unsigned arithmetics
+ setCurrentThreadName(Zstr("HttpInputStream ") + server);
- if (contains(buf, headerDelim))
+ bool headerReceived = false;
+ try
{
- headBuf = beforeFirst(buf, headerDelim, IfNotFoundReturn::none);
- const std::string bodyBuf = afterFirst (buf, headerDelim, IfNotFoundReturn::none);
- //put excess bytes into instance buffer for body retrieval
- assert(bufPos_ == 0 && bufPosEnd_ == 0);
- bufPosEnd_ = bodyBuf.size();
- std::copy(bodyBuf.begin(), bodyBuf.end(), reinterpret_cast<char*>(&memBuf_[0]));
- break;
+ std::vector<std::string> curlHeaders;
+ for (const auto& [name, value] : headers)
+ curlHeaders.push_back(name + ": " + value);
+
+ std::vector<CurlOption> extraOptions {{CURLOPT_USERAGENT, userAgent.c_str()}};
+ //CURLOPT_FOLLOWLOCATION already off by default :)
+ if (postBuf)
+ {
+ extraOptions.emplace_back(CURLOPT_POSTFIELDS, postBuf->c_str());
+ extraOptions.emplace_back(CURLOPT_POSTFIELDSIZE_LARGE, postBuf->size()); //postBuf not necessarily null-terminated!
+ }
+
+ //carefully with these callbacks! First receive HTTP header without blocking,
+ //and only then allow AsyncStreamBuffer::write() which can block!
+
+ std::string headerBuf;
+ auto onHeaderData = [&](const std::string_view& headerLine)
+ {
+ if (headerReceived)
+ throw SysError(L"Unexpected header data after end of HTTP header.");
+
+ //"The callback will be called once for each header and only complete header lines are passed on to the callback" (including \r\n at the end)
+ headerBuf += headerLine;
+
+ if (headerLine == "\r\n")
+ {
+ headerReceived = true;
+ promiseHeader->set_value(std::move(headerBuf));
+ }
+ };
+
+ HttpSession httpSession(server, useTls, caCertFilePath, HTTP_ACCESS_TIME_OUT); //throw SysError
+
+ auto writeResponse = [&](std::span<const char> buf)
+ {
+ if (!headerReceived)
+ throw SysError(L"Received HTTP body without header.");
+
+ return asyncStreamOut->write(buf.data(), buf.size()); //throw ThreadStopRequest
+ };
+
+ httpSession.perform(serverRelPath, //throw SysError, ThreadStopRequest
+ curlHeaders, extraOptions,
+ writeResponse /*throw ThreadStopRequest*/,
+ nullptr /*readRequest*/,
+ onHeaderData /*throw SysError*/);
+
+ if (!headerReceived)
+ throw SysError(L"HTTP response is missing header.");
+
+ asyncStreamOut->closeStream();
}
- if (bytesReceived == 0)
- break;
- }
- //parse header
- const std::string statusBuf = beforeFirst(headBuf, "\r\n", IfNotFoundReturn::all);
- const std::string headersBuf = afterFirst (headBuf, "\r\n", IfNotFoundReturn::none);
+ catch (SysError&) //let ThreadStopRequest pass through!
+ {
+ if (!headerReceived)
+ promiseHeader->set_exception(std::current_exception());
+
+ asyncStreamOut->setWriteError(std::current_exception());
+ }
+ });
+
+ const std::string headBuf = futHeader.get(); //throw SysError
+ //parse header: https://www.w3.org/Protocols/HTTP/1.0/spec.html#Request-Line
+ const std::string& statusBuf = beforeFirst(headBuf, "\r\n", IfNotFoundReturn::all);
+ const std::string& headersBuf = afterFirst (headBuf, "\r\n", IfNotFoundReturn::none);
const std::vector<std::string> statusItems = split(statusBuf, ' ', SplitOnEmpty::allow); //HTTP-Version SP Status-Code SP Reason-Phrase CRLF
if (statusItems.size() < 2 || !startsWith(statusItems[0], "HTTP/"))
@@ -124,9 +147,9 @@ public:
responseHeaders_[trimCpy(beforeFirst(line, ':', IfNotFoundReturn::all))] =
/**/ trimCpy(afterFirst (line, ':', IfNotFoundReturn::none));
- //try to get "Content-Length" header if available
- if (const std::string* value = getHeader("Content-Length"))
- contentRemaining_ = stringTo<int64_t>(*value) - (bufPosEnd_ - bufPos_);
+ /* let's NOT consider "Content-Length" header:
+ - may be unavailable ("Transfer-Encoding: chunked")
+ - may refer to compressed data size ("Content-Encoding: gzip") */
//let's not get too finicky: at least report the logical amount of bytes sent/received (excluding HTTP headers)
if (notifyUnbufferedIO_) notifyUnbufferedIO_(postBuf ? postBuf->size() : 0); //throw X
@@ -134,7 +157,6 @@ public:
~Impl() { cleanup(); }
-
const int getStatusCode() const { return statusCode_; }
const std::string* getHeader(const std::string& name) const
@@ -145,79 +167,37 @@ public:
size_t read(void* buffer, size_t bytesToRead) //throw SysError, X; return "bytesToRead" bytes unless end of stream!
{
- const size_t blockSize = getBlockSize();
- assert(memBuf_.size() >= blockSize);
- assert(bufPos_ <= bufPosEnd_ && bufPosEnd_ <= memBuf_.size());
-
- auto it = static_cast<std::byte*>(buffer);
- const auto itEnd = it + bytesToRead;
- for (;;)
- {
- const size_t junkSize = std::min(static_cast<size_t>(itEnd - it), bufPosEnd_ - bufPos_);
- std::memcpy(it, &memBuf_[0] + bufPos_, junkSize);
- bufPos_ += junkSize;
- it += junkSize;
-
- if (it == itEnd)
- break;
- //--------------------------------------------------------------------
- const size_t bytesRead = tryRead(&memBuf_[0], blockSize); //throw SysError; may return short, only 0 means EOF! => CONTRACT: bytesToRead > 0
- bufPos_ = 0;
- bufPosEnd_ = bytesRead;
-
- if (notifyUnbufferedIO_) notifyUnbufferedIO_(bytesRead); //throw X
-
- if (bytesRead == 0) //end of file
- break;
- }
- return it - static_cast<std::byte*>(buffer);
+ const size_t bytesRead = asyncStreamIn_->read(buffer, bytesToRead); //throw SysError
+ reportBytesProcessed(); //throw X
+ return bytesRead;
+ //no need for asyncStreamIn_->checkWriteErrors(): once end of stream is reached, asyncStreamOut->closeStream() was called => no errors occured
}
size_t getBlockSize() const { return 64 * 1024; }
private:
- size_t tryRead(void* buffer, size_t bytesToRead) //throw SysError; may return short, only 0 means EOF!
- {
- assert(bytesToRead <= getBlockSize()); //block size might be 1000 while reading HTTP header
-
- if (contentRemaining_ >= 0)
- {
- if (contentRemaining_ == 0)
- return 0;
- bytesToRead = static_cast<size_t>(std::min(static_cast<int64_t>(bytesToRead), contentRemaining_)); //[!] contentRemaining_ > 4 GB possible!
- }
- const size_t bytesReceived = tlsCtx_ ?
- tlsCtx_->tryRead( buffer, bytesToRead) : //throw SysError; may return short, only 0 means EOF!
- tryReadSocket (socket_->get(), buffer, bytesToRead); //
- if (contentRemaining_ >= 0)
- contentRemaining_ -= bytesReceived;
-
- if (bytesReceived == 0 && contentRemaining_ > 0)
- throw SysError(formatSystemError("HttpInputStream::tryRead", L"", L"Incomplete server response: " +
- numberTo<std::wstring>(contentRemaining_) + L" more bytes expected."));
+ Impl (const Impl&) = delete;
+ Impl& operator=(const Impl&) = delete;
- return bytesReceived; //"zero indicates end of file"
+ void reportBytesProcessed() //throw X
+ {
+ const int64_t totalBytesDownloaded = asyncStreamIn_->getTotalBytesWritten();
+ if (notifyUnbufferedIO_) notifyUnbufferedIO_(totalBytesDownloaded - totalBytesReported_); //throw X
+ totalBytesReported_ = totalBytesDownloaded;
}
void cleanup()
{
+ asyncStreamIn_->setReadError(std::make_exception_ptr(ThreadStopRequest()));
}
- Impl (const Impl&) = delete;
- Impl& operator=(const Impl&) = delete;
-
- std::unique_ptr<Socket> socket_; //*bound* after constructor has run
- std::unique_ptr<TlsContext> tlsCtx_; //optional: support HTTPS
+ std::shared_ptr<AsyncStreamBuffer> asyncStreamIn_ = std::make_shared<AsyncStreamBuffer>(512 * 1024);
+ InterruptibleThread worker_;
+ int64_t totalBytesReported_ = 0;
int statusCode_ = 0;
std::map<std::string, std::string, LessAsciiNoCase> responseHeaders_;
- int64_t contentRemaining_ = -1; //consider "Content-Length" if available
-
const IoCallback notifyUnbufferedIO_; //throw X
-
- std::vector<std::byte> memBuf_ = std::vector<std::byte>(getBlockSize());
- size_t bufPos_ = 0; //buffered I/O; see file_io.cpp
- size_t bufPosEnd_ = 0; //
};
@@ -238,7 +218,7 @@ std::unique_ptr<HttpInputStream::Impl> sendHttpRequestImpl(const Zstring& url,
const std::string* postBuf /*issue POST if bound, GET otherwise*/,
const std::string& contentType, //required for POST
const Zstring& userAgent,
- const Zstring* caCertFilePath /*optional: enable certificate validation*/,
+ const Zstring& caCertFilePath /*optional: enable certificate validation*/,
const IoCallback& notifyUnbufferedIO) //throw SysError, X
{
Zstring urlRed = url;
@@ -338,14 +318,14 @@ std::vector<std::pair<std::string, std::string>> zen::xWwwFormUrlDecode(const st
}
-HttpInputStream zen::sendHttpGet(const Zstring& url, const Zstring& userAgent, const Zstring* caCertFilePath, const IoCallback& notifyUnbufferedIO) //throw SysError, X
+HttpInputStream zen::sendHttpGet(const Zstring& url, const Zstring& userAgent, const Zstring& caCertFilePath, const IoCallback& notifyUnbufferedIO) //throw SysError, X
{
return sendHttpRequestImpl(url, nullptr /*postBuf*/, "" /*contentType*/, userAgent, caCertFilePath, notifyUnbufferedIO); //throw SysError, X, X
}
HttpInputStream zen::sendHttpPost(const Zstring& url, const std::vector<std::pair<std::string, std::string>>& postParams,
- const Zstring& userAgent, const Zstring* caCertFilePath, const IoCallback& notifyUnbufferedIO) //throw SysError, X
+ const Zstring& userAgent, const Zstring& caCertFilePath, const IoCallback& notifyUnbufferedIO) //throw SysError, X
{
return sendHttpPost(url, xWwwFormUrlEncode(postParams), "application/x-www-form-urlencoded", userAgent, caCertFilePath, notifyUnbufferedIO); //throw SysError, X
}
@@ -353,7 +333,7 @@ HttpInputStream zen::sendHttpPost(const Zstring& url, const std::vector<std::pai
HttpInputStream zen::sendHttpPost(const Zstring& url, const std::string& postBuf, const std::string& contentType,
- const Zstring& userAgent, const Zstring* caCertFilePath, const IoCallback& notifyUnbufferedIO) //throw SysError, X
+ const Zstring& userAgent, const Zstring& caCertFilePath, const IoCallback& notifyUnbufferedIO) //throw SysError, X
{
return sendHttpRequestImpl(url, &postBuf, contentType, userAgent, caCertFilePath, notifyUnbufferedIO); //throw SysError, X
}
@@ -368,7 +348,7 @@ bool zen::internetIsAlive() //noexcept
"" /*contentType*/,
true /*disableGetCache*/,
Zstr("FreeFileSync"),
- nullptr /*caCertFilePath*/,
+ Zstring() /*caCertFilePath*/,
nullptr /*notifyUnbufferedIO*/); //throw SysError
const int statusCode = response->getStatusCode();
@@ -386,72 +366,72 @@ std::wstring zen::formatHttpError(int sc)
{
switch (sc)
{
- //*INDENT-OFF*
- case 300: return L"Multiple choices.";
- case 301: return L"Moved permanently.";
- case 302: return L"Moved temporarily.";
- case 303: return L"See other";
- case 304: return L"Not modified.";
- case 305: return L"Use proxy.";
- case 306: return L"Switch proxy.";
- case 307: return L"Temporary redirect.";
- case 308: return L"Permanent redirect.";
-
- case 400: return L"Bad request.";
- case 401: return L"Unauthorized.";
- case 402: return L"Payment required.";
- case 403: return L"Forbidden.";
- case 404: return L"Not found.";
- case 405: return L"Method not allowed.";
- case 406: return L"Not acceptable.";
- case 407: return L"Proxy authentication required.";
- case 408: return L"Request timeout.";
- case 409: return L"Conflict.";
- case 410: return L"Gone.";
- case 411: return L"Length required.";
- case 412: return L"Precondition failed.";
- case 413: return L"Payload too large.";
- case 414: return L"URI too long.";
- case 415: return L"Unsupported media type.";
- case 416: return L"Range not satisfiable.";
- case 417: return L"Expectation failed.";
- case 418: return L"I'm a teapot.";
- case 421: return L"Misdirected request.";
- case 422: return L"Unprocessable entity.";
- case 423: return L"Locked.";
- case 424: return L"Failed dependency.";
- case 425: return L"Too early.";
- case 426: return L"Upgrade required.";
- case 428: return L"Precondition required.";
- case 429: return L"Too many requests.";
- case 431: return L"Request header fields too large.";
- case 451: return L"Unavailable for legal reasons.";
-
- case 500: return L"Internal server error.";
- case 501: return L"Not implemented.";
- case 502: return L"Bad gateway.";
- case 503: return L"Service unavailable.";
- case 504: return L"Gateway timeout.";
- case 505: return L"HTTP version not supported.";
- case 506: return L"Variant also negotiates.";
- case 507: return L"Insufficient storage.";
- case 508: return L"Loop detected.";
- case 510: return L"Not extended.";
- case 511: return L"Network authentication required.";
-
- //Cloudflare errors regarding origin server:
- case 520: return L"Unknown error (Cloudflare)";
- case 521: return L"Web server is down (Cloudflare)";
- case 522: return L"Connection timed out (Cloudflare)";
- case 523: return L"Origin is unreachable (Cloudflare)";
- case 524: return L"A timeout occurred (Cloudflare)";
- case 525: return L"SSL handshake failed (Cloudflare)";
- case 526: return L"Invalid SSL certificate (Cloudflare)";
- case 527: return L"Railgun error (Cloudflare)";
- case 530: return L"Origin DNS error (Cloudflare)";
-
- default: return L"";
- //*INDENT-ON*
+ //*INDENT-OFF*
+ case 300: return L"Multiple choices.";
+ case 301: return L"Moved permanently.";
+ case 302: return L"Moved temporarily.";
+ case 303: return L"See other";
+ case 304: return L"Not modified.";
+ case 305: return L"Use proxy.";
+ case 306: return L"Switch proxy.";
+ case 307: return L"Temporary redirect.";
+ case 308: return L"Permanent redirect.";
+
+ case 400: return L"Bad request.";
+ case 401: return L"Unauthorized.";
+ case 402: return L"Payment required.";
+ case 403: return L"Forbidden.";
+ case 404: return L"Not found.";
+ case 405: return L"Method not allowed.";
+ case 406: return L"Not acceptable.";
+ case 407: return L"Proxy authentication required.";
+ case 408: return L"Request timeout.";
+ case 409: return L"Conflict.";
+ case 410: return L"Gone.";
+ case 411: return L"Length required.";
+ case 412: return L"Precondition failed.";
+ case 413: return L"Payload too large.";
+ case 414: return L"URI too long.";
+ case 415: return L"Unsupported media type.";
+ case 416: return L"Range not satisfiable.";
+ case 417: return L"Expectation failed.";
+ case 418: return L"I'm a teapot.";
+ case 421: return L"Misdirected request.";
+ case 422: return L"Unprocessable entity.";
+ case 423: return L"Locked.";
+ case 424: return L"Failed dependency.";
+ case 425: return L"Too early.";
+ case 426: return L"Upgrade required.";
+ case 428: return L"Precondition required.";
+ case 429: return L"Too many requests.";
+ case 431: return L"Request header fields too large.";
+ case 451: return L"Unavailable for legal reasons.";
+
+ case 500: return L"Internal server error.";
+ case 501: return L"Not implemented.";
+ case 502: return L"Bad gateway.";
+ case 503: return L"Service unavailable.";
+ case 504: return L"Gateway timeout.";
+ case 505: return L"HTTP version not supported.";
+ case 506: return L"Variant also negotiates.";
+ case 507: return L"Insufficient storage.";
+ case 508: return L"Loop detected.";
+ case 510: return L"Not extended.";
+ case 511: return L"Network authentication required.";
+
+ //Cloudflare errors regarding origin server:
+ case 520: return L"Unknown error (Cloudflare)";
+ case 521: return L"Web server is down (Cloudflare)";
+ case 522: return L"Connection timed out (Cloudflare)";
+ case 523: return L"Origin is unreachable (Cloudflare)";
+ case 524: return L"A timeout occurred (Cloudflare)";
+ case 525: return L"SSL handshake failed (Cloudflare)";
+ case 526: return L"Invalid SSL certificate (Cloudflare)";
+ case 527: return L"Railgun error (Cloudflare)";
+ case 530: return L"Origin DNS error (Cloudflare)";
+
+ default: return L"";
+ //*INDENT-ON*
}
}();
diff --git a/zen/http.h b/zen/http.h
index 07c3f28c..9457309c 100644
--- a/zen/http.h
+++ b/zen/http.h
@@ -13,10 +13,8 @@
namespace zen
{
-/*
- - thread-safe! (Window/Linux/macOS)
- - Linux/macOS: init OpenSSL before use!
-*/
+/* - thread-safe! (Window/Linux/macOS)
+ - Linux/macOS: init libcurl before use! */
class HttpInputStream
{
public:
@@ -38,19 +36,19 @@ private:
HttpInputStream sendHttpGet(const Zstring& url,
const Zstring& userAgent,
- const Zstring* caCertFilePath /*optional: enable certificate validation*/,
+ const Zstring& caCertFilePath /*optional: enable certificate validation*/,
const IoCallback& notifyUnbufferedIO /*throw X*/); //throw SysError, X
HttpInputStream sendHttpPost(const Zstring& url,
const std::vector<std::pair<std::string, std::string>>& postParams,
const Zstring& userAgent,
- const Zstring* caCertFilePath /*optional: enable certificate validation*/,
+ const Zstring& caCertFilePath /*optional: enable certificate validation*/,
const IoCallback& notifyUnbufferedIO /*throw X*/); //throw SysError, X
HttpInputStream sendHttpPost(const Zstring& url,
const std::string& postBuf, const std::string& contentType,
const Zstring& userAgent,
- const Zstring* caCertFilePath /*optional: enable certificate validation*/,
+ const Zstring& caCertFilePath /*optional: enable certificate validation*/,
const IoCallback& notifyUnbufferedIO /*throw X*/); //throw SysError, X
bool internetIsAlive(); //noexcept
diff --git a/zen/open_ssl.cpp b/zen/open_ssl.cpp
index e875351c..62560d78 100644
--- a/zen/open_ssl.cpp
+++ b/zen/open_ssl.cpp
@@ -5,13 +5,18 @@
// *****************************************************************************
#include "open_ssl.h"
-#include <bit> //std::endian
-#include <stdexcept>
#include "base64.h"
-#include "build_info.h"
+#include "thread.h"
#include <openssl/pem.h>
#include <openssl/err.h>
#include <openssl/ssl.h>
+#if OPENSSL_VERSION_NUMBER >= 0x30000000L
+ #include <openssl/core_names.h>
+ #include <openssl/encoder.h>
+ #include <openssl/decoder.h>
+ #include <openssl/param_build.h>
+#endif
+
using namespace zen;
@@ -29,7 +34,8 @@ void zen::openSslInit()
//see apps_shutdown(): https://github.com/openssl/openssl/blob/master/apps/openssl.c
//see Curl_ossl_cleanup(): https://github.com/curl/curl/blob/master/lib/vtls/openssl.c
- //excplicitly init OpenSSL on main thread: seems to initialize atomically! But it still might help to avoid issues:
+ assert(runningOnMainThread());
+ //excplicitly init OpenSSL on main thread: seems to initialize atomically! But it still might help to avoid issues:
[[maybe_unused]] const int rv = ::OPENSSL_init_ssl(OPENSSL_INIT_SSL_DEFAULT | OPENSSL_INIT_NO_LOAD_CONFIG, nullptr);
assert(rv == 1); //https://www.openssl.org/docs/man1.1.0/ssl/OPENSSL_init_ssl.html
}
@@ -101,67 +107,83 @@ std::shared_ptr<EVP_PKEY> generateRsaKeyPair(int bits) //throw SysError
//================================================================================
-using BioToEvpFunc = EVP_PKEY* (*)(BIO* bp, EVP_PKEY** x, pem_password_cb* cb, void* u);
-
-std::shared_ptr<EVP_PKEY> streamToEvpKey(const std::string& keyStream, BioToEvpFunc bioToEvp, const char* functionName) //throw SysError
-{
- BIO* bio = ::BIO_new_mem_buf(keyStream.c_str(), static_cast<int>(keyStream.size()));
- if (!bio)
- throw SysError(formatLastOpenSSLError("BIO_new_mem_buf"));
- ZEN_ON_SCOPE_EXIT(::BIO_free_all(bio));
-
- if (EVP_PKEY* evp = bioToEvp(bio, //BIO* bp
- nullptr, //EVP_PKEY** x
- nullptr, //pem_password_cb* cb
- nullptr)) //void* u
- return std::shared_ptr<EVP_PKEY>(evp, ::EVP_PKEY_free);
- throw SysError(formatLastOpenSSLError(functionName));
-}
-
-
-using BioToRsaFunc = RSA* (*)(BIO* bp, RSA** x, pem_password_cb* cb, void* u);
-
-std::shared_ptr<EVP_PKEY> streamToEvpKey(const std::string& keyStream, BioToRsaFunc bioToRsa, const char* functionName) //throw SysError
-{
- BIO* bio = ::BIO_new_mem_buf(keyStream.c_str(), static_cast<int>(keyStream.size()));
- if (!bio)
- throw SysError(formatLastOpenSSLError("BIO_new_mem_buf"));
- ZEN_ON_SCOPE_EXIT(::BIO_free_all(bio));
-
- RSA* rsa = bioToRsa(bio, //BIO* bp
- nullptr, //RSA** x
- nullptr, //pem_password_cb* cb
- nullptr); //void* u
- if (!rsa)
- throw SysError(formatLastOpenSSLError(functionName));
- ZEN_ON_SCOPE_EXIT(::RSA_free(rsa));
-
- EVP_PKEY* evp = ::EVP_PKEY_new();
- if (!evp)
- throw SysError(formatLastOpenSSLError("EVP_PKEY_new"));
- std::shared_ptr<EVP_PKEY> sharedKey(evp, ::EVP_PKEY_free);
-
- if (::EVP_PKEY_set1_RSA(evp, rsa) != 1) //no ownership transfer (internally ref-counted)
- throw SysError(formatLastOpenSSLError("EVP_PKEY_set1_RSA"));
-
- return sharedKey;
-}
-
-//--------------------------------------------------------------------------------
-
std::shared_ptr<EVP_PKEY> streamToKey(const std::string& keyStream, RsaStreamType streamType, bool publicKey) //throw SysError
{
switch (streamType)
{
case RsaStreamType::pkix:
- return publicKey ?
- streamToEvpKey(keyStream, ::PEM_read_bio_PUBKEY, "PEM_read_bio_PUBKEY") : //throw SysError
- streamToEvpKey(keyStream, ::PEM_read_bio_PrivateKey, "PEM_read_bio_PrivateKey"); //
+ {
+ BIO* bio = ::BIO_new_mem_buf(keyStream.c_str(), static_cast<int>(keyStream.size()));
+ if (!bio)
+ throw SysError(formatLastOpenSSLError("BIO_new_mem_buf"));
+ ZEN_ON_SCOPE_EXIT(::BIO_free_all(bio));
+
+ if (EVP_PKEY* evp = (publicKey ?
+ ::PEM_read_bio_PUBKEY :
+ ::PEM_read_bio_PrivateKey)
+ (bio, //BIO* bp
+ nullptr, //EVP_PKEY** x
+ nullptr, //pem_password_cb* cb
+ nullptr)) //void* u
+ return std::shared_ptr<EVP_PKEY>(evp, ::EVP_PKEY_free);
+ throw SysError(formatLastOpenSSLError(publicKey ? "PEM_read_bio_PUBKEY" : "PEM_read_bio_PrivateKey"));
+ }
case RsaStreamType::pkcs1:
- return publicKey ?
- streamToEvpKey(keyStream, ::PEM_read_bio_RSAPublicKey, "PEM_read_bio_RSAPublicKey") : //throw SysError
- streamToEvpKey(keyStream, ::PEM_read_bio_RSAPrivateKey, "PEM_read_bio_RSAPrivateKey"); //
+ {
+#if OPENSSL_VERSION_NUMBER >= 0x30000000L
+ EVP_PKEY* evp = nullptr;
+ auto guardEvp = makeGuard<ScopeGuardRunMode::onExit>([&] { if (evp) ::EVP_PKEY_free(evp); });
+
+ const int selection = publicKey ? OSSL_KEYMGMT_SELECT_PUBLIC_KEY : OSSL_KEYMGMT_SELECT_PRIVATE_KEY;
+
+ OSSL_DECODER_CTX* decCtx = ::OSSL_DECODER_CTX_new_for_pkey(&evp, //EVP_PKEY** pkey
+ "PEM", //const char* input_type
+ nullptr, //const char* input_struct
+ "RSA", //const char* keytype
+ selection, //int selection
+ nullptr, //OSSL_LIB_CTX* libctx
+ nullptr); //const char* propquery
+ if (!decCtx)
+ throw SysError(formatLastOpenSSLError("OSSL_DECODER_CTX_new_for_pkey"));
+ ZEN_ON_SCOPE_EXIT(::OSSL_DECODER_CTX_free(decCtx));
+
+ //key stream is password-protected? => OSSL_DECODER_CTX_set_passphrase()
+
+ const unsigned char* keyBuf = reinterpret_cast<const unsigned char*>(keyStream.c_str());
+ size_t keyLen = keyStream.size();
+ if (::OSSL_DECODER_from_data(decCtx, &keyBuf, &keyLen) != 1)
+ throw SysError(formatLastOpenSSLError("OSSL_DECODER_from_data"));
+
+ guardEvp.dismiss(); //pass ownership
+ return std::shared_ptr<EVP_PKEY>(evp, ::EVP_PKEY_free); //
+#else
+ BIO* bio = ::BIO_new_mem_buf(keyStream.c_str(), static_cast<int>(keyStream.size()));
+ if (!bio)
+ throw SysError(formatLastOpenSSLError("BIO_new_mem_buf"));
+ ZEN_ON_SCOPE_EXIT(::BIO_free_all(bio));
+
+ RSA* rsa = (publicKey ?
+ ::PEM_read_bio_RSAPublicKey :
+ ::PEM_read_bio_RSAPrivateKey)(bio, //BIO* bp
+ nullptr, //RSA** x
+ nullptr, //pem_password_cb* cb
+ nullptr); //void* u
+ if (!rsa)
+ throw SysError(formatLastOpenSSLError(publicKey ? "PEM_read_bio_RSAPublicKey" : "PEM_read_bio_RSAPrivateKey"));
+ ZEN_ON_SCOPE_EXIT(::RSA_free(rsa));
+
+ EVP_PKEY* evp = ::EVP_PKEY_new();
+ if (!evp)
+ throw SysError(formatLastOpenSSLError("EVP_PKEY_new"));
+ std::shared_ptr<EVP_PKEY> sharedKey(evp, ::EVP_PKEY_free);
+
+ if (::EVP_PKEY_set1_RSA(evp, rsa) != 1) //no ownership transfer (internally ref-counted)
+ throw SysError(formatLastOpenSSLError("EVP_PKEY_set1_RSA"));
+
+ return sharedKey;
+#endif
+ }
case RsaStreamType::raw:
break;
@@ -179,102 +201,113 @@ std::shared_ptr<EVP_PKEY> streamToKey(const std::string& keyStream, RsaStreamTyp
//================================================================================
-using EvpToBioFunc = int (*)(BIO* bio, const EVP_PKEY* evp);
-
-std::string evpKeyToStream(const EVP_PKEY* evp, EvpToBioFunc evpToBio, const char* functionName) //throw SysError
-{
- BIO* bio = ::BIO_new(BIO_s_mem());
- if (!bio)
- throw SysError(formatLastOpenSSLError("BIO_new"));
- ZEN_ON_SCOPE_EXIT(::BIO_free_all(bio));
-
- if (evpToBio(bio, evp) != 1)
- throw SysError(formatLastOpenSSLError(functionName));
- //---------------------------------------------
- const int keyLen = BIO_pending(bio);
- if (keyLen < 0)
- throw SysError(formatLastOpenSSLError("BIO_pending"));
- if (keyLen == 0)
- throw SysError(formatSystemError("BIO_pending", L"", L"Unexpected failure.")); //no more error details
-
- std::string keyStream(keyLen, '\0');
-
- if (::BIO_read(bio, &keyStream[0], keyLen) != keyLen)
- throw SysError(formatLastOpenSSLError("BIO_read"));
- return keyStream;
-}
-
-
-using RsaToBioFunc = int (*)(BIO* bp, const RSA* x);
-
-std::string evpKeyToStream(const EVP_PKEY* evp, RsaToBioFunc rsaToBio, const char* functionName) //throw SysError
-{
- BIO* bio = ::BIO_new(BIO_s_mem());
- if (!bio)
- throw SysError(formatLastOpenSSLError("BIO_new"));
- ZEN_ON_SCOPE_EXIT(::BIO_free_all(bio));
-
- const RSA* rsa = ::EVP_PKEY_get0_RSA(evp); //unowned reference!
- if (!rsa)
- throw SysError(formatLastOpenSSLError("EVP_PKEY_get0_RSA"));
-
- if (rsaToBio(bio, rsa) != 1)
- throw SysError(formatLastOpenSSLError(functionName));
- //---------------------------------------------
- const int keyLen = BIO_pending(bio);
- if (keyLen < 0)
- throw SysError(formatLastOpenSSLError("BIO_pending"));
- if (keyLen == 0)
- throw SysError(formatSystemError("BIO_pending", L"", L"Unexpected failure.")); //no more error details
-
- std::string keyStream(keyLen, '\0');
-
- if (::BIO_read(bio, &keyStream[0], keyLen) != keyLen)
- throw SysError(formatLastOpenSSLError("BIO_read"));
- return keyStream;
-}
-
-
-//fix OpenSSL API inconsistencies:
-int PEM_write_bio_PrivateKey2(BIO* bio, const EVP_PKEY* key)
-{
- return ::PEM_write_bio_PrivateKey(bio, //BIO* bp
- key, //const EVP_PKEY* x
- nullptr, //const EVP_CIPHER* enc
- nullptr, //const unsigned char* kstr
- 0, //int klen
- nullptr, //pem_password_cb* cb
- nullptr); //void* u
-}
-
-int PEM_write_bio_RSAPrivateKey2(BIO* bio, const RSA* rsa)
-{
- return ::PEM_write_bio_RSAPrivateKey(bio, //BIO* bp
- rsa, //const RSA* x
- nullptr, //const EVP_CIPHER* enc
- nullptr, //const unsigned char* kstr
- 0, //int klen
- nullptr, //pem_password_cb* cb
- nullptr); //void* u
-}
-
-int PEM_write_bio_RSAPublicKey2(BIO* bio, const RSA* rsa) { return ::PEM_write_bio_RSAPublicKey(bio, rsa); }
-
-//--------------------------------------------------------------------------------
-
std::string keyToStream(const EVP_PKEY* evp, RsaStreamType streamType, bool publicKey) //throw SysError
{
+ //assert(::EVP_PKEY_get_base_id(evp) == EVP_PKEY_RSA);
+
switch (streamType)
{
case RsaStreamType::pkix:
- return publicKey ?
- evpKeyToStream(evp, ::PEM_write_bio_PUBKEY, "PEM_write_bio_PUBKEY") : //throw SysError
- evpKeyToStream(evp, ::PEM_write_bio_PrivateKey2, "PEM_write_bio_PrivateKey"); //
+ {
+ //fix OpenSSL API inconsistencies:
+ auto PEM_write_bio_PrivateKey2 = [](BIO* bio, const EVP_PKEY* key)
+ {
+ return ::PEM_write_bio_PrivateKey(bio, //BIO* bp
+ key, //const EVP_PKEY* x
+ nullptr, //const EVP_CIPHER* enc
+ nullptr, //const unsigned char* kstr
+ 0, //int klen
+ nullptr, //pem_password_cb* cb
+ nullptr); //void* u
+ };
+
+ BIO* bio = ::BIO_new(BIO_s_mem());
+ if (!bio)
+ throw SysError(formatLastOpenSSLError("BIO_new"));
+ ZEN_ON_SCOPE_EXIT(::BIO_free_all(bio));
+
+ if ((publicKey ?
+ ::PEM_write_bio_PUBKEY :
+ PEM_write_bio_PrivateKey2)(bio, evp) != 1)
+ throw SysError(formatLastOpenSSLError(publicKey ? "PEM_write_bio_PUBKEY" : "PEM_write_bio_PrivateKey"));
+ //---------------------------------------------
+ const int keyLen = BIO_pending(bio);
+ if (keyLen < 0)
+ throw SysError(formatLastOpenSSLError("BIO_pending"));
+ if (keyLen == 0)
+ throw SysError(formatSystemError("BIO_pending", L"", L"Unexpected failure.")); //no more error details
+
+ std::string keyStream(keyLen, '\0');
+
+ if (::BIO_read(bio, &keyStream[0], keyLen) != keyLen)
+ throw SysError(formatLastOpenSSLError("BIO_read"));
+ return keyStream;
+ }
case RsaStreamType::pkcs1:
- return publicKey ?
- evpKeyToStream(evp, ::PEM_write_bio_RSAPublicKey2, "PEM_write_bio_RSAPublicKey") : //throw SysError
- evpKeyToStream(evp, ::PEM_write_bio_RSAPrivateKey2, "PEM_write_bio_RSAPrivateKey"); //
+ {
+#if OPENSSL_VERSION_NUMBER >= 0x30000000L
+ const int selection = publicKey ? OSSL_KEYMGMT_SELECT_PUBLIC_KEY : OSSL_KEYMGMT_SELECT_PRIVATE_KEY;
+
+ OSSL_ENCODER_CTX* encCtx = ::OSSL_ENCODER_CTX_new_for_pkey(evp, //const EVP_PKEY* pkey
+ selection, //int selection
+ "PEM", //const char* output_type
+ nullptr, //const char* output_structure
+ nullptr); //const char* propquery
+ if (!encCtx)
+ throw SysError(formatLastOpenSSLError("OSSL_ENCODER_CTX_new_for_pkey"));
+ ZEN_ON_SCOPE_EXIT(::OSSL_ENCODER_CTX_free(encCtx));
+
+ //password-protect stream? => OSSL_ENCODER_CTX_set_passphrase()
+
+ unsigned char* keyBuf = nullptr;
+ size_t keyLen = 0;
+ if (::OSSL_ENCODER_to_data(encCtx, &keyBuf, &keyLen) != 1)
+ throw SysError(formatLastOpenSSLError("OSSL_ENCODER_to_data"));
+ ZEN_ON_SCOPE_EXIT(::OPENSSL_free(keyBuf));
+
+ return {reinterpret_cast<const char*>(keyBuf), keyLen};
+#else
+ //fix OpenSSL API inconsistencies:
+ auto PEM_write_bio_RSAPrivateKey2 = [](BIO* bio, const RSA* rsa)
+ {
+ return ::PEM_write_bio_RSAPrivateKey(bio, //BIO* bp
+ rsa, //const RSA* x
+ nullptr, //const EVP_CIPHER* enc
+ nullptr, //const unsigned char* kstr
+ 0, //int klen
+ nullptr, //pem_password_cb* cb
+ nullptr); //void* u
+ };
+ auto PEM_write_bio_RSAPublicKey2 = [](BIO* bio, const RSA* rsa) { return ::PEM_write_bio_RSAPublicKey(bio, rsa); };
+
+ BIO* bio = ::BIO_new(BIO_s_mem());
+ if (!bio)
+ throw SysError(formatLastOpenSSLError("BIO_new"));
+ ZEN_ON_SCOPE_EXIT(::BIO_free_all(bio));
+
+ const RSA* rsa = ::EVP_PKEY_get0_RSA(evp); //unowned reference!
+ if (!rsa)
+ throw SysError(formatLastOpenSSLError("EVP_PKEY_get0_RSA"));
+
+ if ((publicKey ?
+ PEM_write_bio_RSAPublicKey2 :
+ PEM_write_bio_RSAPrivateKey2)(bio, rsa) != 1)
+ throw SysError(formatLastOpenSSLError(publicKey ? "PEM_write_bio_RSAPublicKey" : "PEM_write_bio_RSAPrivateKey"));
+ //---------------------------------------------
+ const int keyLen = BIO_pending(bio);
+ if (keyLen < 0)
+ throw SysError(formatLastOpenSSLError("BIO_pending"));
+ if (keyLen == 0)
+ throw SysError(formatSystemError("BIO_pending", L"", L"Unexpected failure.")); //no more error details
+
+ std::string keyStream(keyLen, '\0');
+
+ if (::BIO_read(bio, &keyStream[0], keyLen) != keyLen)
+ throw SysError(formatLastOpenSSLError("BIO_read"));
+ return keyStream;
+#endif
+ }
case RsaStreamType::raw:
break;
@@ -373,266 +406,6 @@ void zen::verifySignature(const std::string& message, const std::string& signatu
}
-namespace
-{
-std::wstring getSslErrorLiteral(int ec)
-{
- switch (ec)
- {
- ZEN_CHECK_CASE_FOR_CONSTANT(SSL_ERROR_NONE);
- ZEN_CHECK_CASE_FOR_CONSTANT(SSL_ERROR_SSL);
- ZEN_CHECK_CASE_FOR_CONSTANT(SSL_ERROR_WANT_READ);
- ZEN_CHECK_CASE_FOR_CONSTANT(SSL_ERROR_WANT_WRITE);
- ZEN_CHECK_CASE_FOR_CONSTANT(SSL_ERROR_WANT_X509_LOOKUP);
- ZEN_CHECK_CASE_FOR_CONSTANT(SSL_ERROR_SYSCALL);
- ZEN_CHECK_CASE_FOR_CONSTANT(SSL_ERROR_ZERO_RETURN);
- ZEN_CHECK_CASE_FOR_CONSTANT(SSL_ERROR_WANT_CONNECT);
- ZEN_CHECK_CASE_FOR_CONSTANT(SSL_ERROR_WANT_ACCEPT);
- ZEN_CHECK_CASE_FOR_CONSTANT(SSL_ERROR_WANT_ASYNC);
- ZEN_CHECK_CASE_FOR_CONSTANT(SSL_ERROR_WANT_ASYNC_JOB);
- ZEN_CHECK_CASE_FOR_CONSTANT(SSL_ERROR_WANT_CLIENT_HELLO_CB);
-
- default:
- return L"SSL error " + numberTo<std::wstring>(ec);
- }
-}
-
-
-std::wstring formatX509ErrorCode(long ec)
-{
- switch (ec)
- {
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_OK);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_UNSPECIFIED);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_UNABLE_TO_GET_CRL);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_CERT_SIGNATURE_FAILURE);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_CRL_SIGNATURE_FAILURE);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_CERT_NOT_YET_VALID);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_CERT_HAS_EXPIRED);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_CRL_NOT_YET_VALID);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_CRL_HAS_EXPIRED);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_OUT_OF_MEM);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_CERT_CHAIN_TOO_LONG);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_CERT_REVOKED);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_INVALID_CA);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_PATH_LENGTH_EXCEEDED);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_INVALID_PURPOSE);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_CERT_UNTRUSTED);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_CERT_REJECTED);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_SUBJECT_ISSUER_MISMATCH);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_AKID_SKID_MISMATCH);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_KEYUSAGE_NO_CERTSIGN);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_KEYUSAGE_NO_CRL_SIGN);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_INVALID_NON_CA);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_PROXY_PATH_LENGTH_EXCEEDED);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_PROXY_CERTIFICATES_NOT_ALLOWED);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_INVALID_EXTENSION);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_INVALID_POLICY_EXTENSION);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_NO_EXPLICIT_POLICY);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_DIFFERENT_CRL_SCOPE);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_UNSUPPORTED_EXTENSION_FEATURE);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_UNNESTED_RESOURCE);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_PERMITTED_VIOLATION);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_EXCLUDED_VIOLATION);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_SUBTREE_MINMAX);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_APPLICATION_VERIFICATION);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_UNSUPPORTED_CONSTRAINT_TYPE);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_UNSUPPORTED_CONSTRAINT_SYNTAX);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_UNSUPPORTED_NAME_SYNTAX);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_CRL_PATH_VALIDATION_ERROR);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_PATH_LOOP);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_SUITE_B_INVALID_VERSION);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_SUITE_B_INVALID_ALGORITHM);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_SUITE_B_INVALID_CURVE);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_SUITE_B_INVALID_SIGNATURE_ALGORITHM);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_SUITE_B_LOS_NOT_ALLOWED);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_SUITE_B_CANNOT_SIGN_P_384_WITH_P_256);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_HOSTNAME_MISMATCH);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_EMAIL_MISMATCH);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_IP_ADDRESS_MISMATCH);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_DANE_NO_MATCH);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_EE_KEY_TOO_SMALL);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_CA_KEY_TOO_SMALL);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_CA_MD_TOO_WEAK);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_INVALID_CALL);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_STORE_LOOKUP);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_NO_VALID_SCTS);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_PROXY_SUBJECT_NAME_VIOLATION);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_OCSP_VERIFY_NEEDED);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_OCSP_VERIFY_FAILED);
- ZEN_CHECK_CASE_FOR_CONSTANT(X509_V_ERR_OCSP_CERT_UNKNOWN);
-
- default:
- return replaceCpy<std::wstring>(L"X509 error %x", L"%x", numberTo<std::wstring>(ec));
- }
-}
-}
-
-class TlsContext::Impl
-{
-public:
- Impl(int socket, //throw SysError
- const std::string& server,
- const Zstring* caCertFilePath /*optional: enable certificate validation*/)
- {
- ZEN_ON_SCOPE_FAIL(cleanup(); /*destructor call would lead to member double clean-up!!!*/);
-
- ctx_ = ::SSL_CTX_new(::TLS_client_method());
- if (!ctx_)
- throw SysError(formatLastOpenSSLError("SSL_CTX_new"));
-
- ssl_ = ::SSL_new(ctx_);
- if (!ssl_)
- throw SysError(formatLastOpenSSLError("SSL_new"));
-
- BIO* bio = ::BIO_new_socket(socket, BIO_NOCLOSE);
- if (!bio)
- throw SysError(formatLastOpenSSLError("BIO_new_socket"));
- ::SSL_set0_rbio(ssl_, bio); //pass ownership
-
- if (::BIO_up_ref(bio) != 1)
- throw SysError(formatLastOpenSSLError("BIO_up_ref"));
- ::SSL_set0_wbio(ssl_, bio); //pass ownership
-
- assert(::SSL_get_mode(ssl_) == SSL_MODE_AUTO_RETRY); //verify OpenSSL default
- ::SSL_set_mode(ssl_, SSL_MODE_ENABLE_PARTIAL_WRITE);
-
- if (::SSL_set_tlsext_host_name(ssl_, server.c_str()) != 1) //enable SNI (Server Name Indication)
- throw SysError(formatLastOpenSSLError("SSL_set_tlsext_host_name"));
-
- if (caCertFilePath)
- {
- if (!::SSL_CTX_load_verify_locations(ctx_, utfTo<std::string>(*caCertFilePath).c_str(), nullptr))
- throw SysError(formatLastOpenSSLError("SSL_CTX_load_verify_locations"));
- //alternative: SSL_CTX_set_default_verify_paths(): use OpenSSL default paths considering SSL_CERT_FILE environment variable
-
- //1. enable check for valid certificate: see SSL_get_verify_result()
- ::SSL_set_verify(ssl_, SSL_VERIFY_PEER, nullptr);
-
- //2. enable check that the certificate matches our host: see SSL_get_verify_result()
- if (::SSL_set1_host(ssl_, server.c_str()) != 1) //no ownership transfer
- throw SysError(formatSystemError("SSL_set1_host", L"", L"Unexpected failure.")); //no more error details
- }
-
- const int rv = ::SSL_connect(ssl_); //implicitly calls SSL_set_connect_state()
- if (rv != 1)
- throw SysError(formatLastOpenSSLError("SSL_connect") + L' ' + getSslErrorLiteral(::SSL_get_error(ssl_, rv)));
-
- if (caCertFilePath)
- {
- const long verifyResult = ::SSL_get_verify_result(ssl_);
- if (verifyResult != X509_V_OK)
- throw SysError(formatSystemError("SSL_get_verify_result", formatX509ErrorCode(verifyResult), L""));
- }
- }
-
- ~Impl()
- {
- //"SSL_shutdown() must not be called if a previous fatal error has occurred on a connection"
- const bool scopeFail = std::uncaught_exceptions() > exeptionCount_;
- if (!scopeFail)
- {
- //"It is acceptable for an application to only send its shutdown alert and then close
- //the underlying connection without waiting for the peer's response."
- [[maybe_unused]] const int rv = ::SSL_shutdown(ssl_);
- assert(rv == 0); //"the close_notify was sent but the peer did not send it back yet."
- }
-
- cleanup();
- }
-
- size_t tryRead(void* buffer, size_t bytesToRead) //throw SysError; may return short, only 0 means EOF!
- {
- if (bytesToRead == 0) //"read() with a count of 0 returns zero" => indistinguishable from end of file! => check!
- throw std::logic_error("Contract violation! " + std::string(__FILE__) + ':' + numberTo<std::string>(__LINE__));
-
- size_t bytesReceived = 0;
- const int rv = ::SSL_read_ex(ssl_, buffer, bytesToRead, &bytesReceived);
- if (rv != 1)
- {
- const int sslError = ::SSL_get_error(ssl_, rv);
- if (sslError == SSL_ERROR_ZERO_RETURN)
- return 0; //EOF + close_notify alert
-
-#if OPENSSL_VERSION_NUMBER >= 0x30000000L /*OpenSSL 3.0.0*/ || \
- OPENSSL_VERSION_NUMBER == 0x1010105fL /*OpenSSL 1.1.1e*/
- const auto ec = ::ERR_peek_last_error();
- if (sslError == SSL_ERROR_SSL && ERR_GET_REASON(ec) == SSL_R_UNEXPECTED_EOF_WHILE_READING) //EOF: only expected for HTTP/1.0
-#else //obsolete handling: https://github.com/openssl/openssl/issues/10880#issuecomment-575746226
- if ((sslError == SSL_ERROR_SYSCALL && ::ERR_peek_last_error() == 0)) //EOF: only expected for HTTP/1.0
-#endif
- return 0;
-
- throw SysError(formatLastOpenSSLError("SSL_read_ex") + L' ' + getSslErrorLiteral(sslError));
- }
- assert(bytesReceived > 0); //SSL_read_ex() considers EOF an error!
- if (bytesReceived > bytesToRead) //better safe than sorry
- throw SysError(formatSystemError("SSL_read_ex", L"", L"Buffer overflow."));
-
- return bytesReceived; //"zero indicates end of file"
- }
-
- size_t tryWrite(const void* buffer, size_t bytesToWrite) //throw SysError; may return short! CONTRACT: bytesToWrite > 0
- {
- if (bytesToWrite == 0)
- throw std::logic_error("Contract violation! " + std::string(__FILE__) + ':' + numberTo<std::string>(__LINE__));
-
- size_t bytesWritten = 0;
- const int rv = ::SSL_write_ex(ssl_, buffer, bytesToWrite, &bytesWritten);
- if (rv != 1)
- throw SysError(formatLastOpenSSLError("SSL_write_ex") + L' ' + getSslErrorLiteral(::SSL_get_error(ssl_, rv)));
-
- if (bytesWritten > bytesToWrite)
- throw SysError(formatSystemError("SSL_write_ex", L"", L"Buffer overflow."));
- if (bytesWritten == 0)
- throw SysError(formatSystemError("SSL_write_ex", L"", L"Zero bytes processed."));
-
- return bytesWritten;
- }
-
-private:
- void cleanup()
- {
- if (ssl_)
- ::SSL_free(ssl_);
-
- if (ctx_)
- ::SSL_CTX_free(ctx_);
- }
-
- Impl (const Impl&) = delete;
- Impl& operator=(const Impl&) = delete;
-
- SSL_CTX* ctx_ = nullptr;
- SSL* ssl_ = nullptr;
- const int exeptionCount_ = std::uncaught_exceptions();
-};
-
-
-zen::TlsContext::TlsContext(int socket, const Zstring& server, const Zstring* caCertFilePath) :
- pimpl_(std::make_unique<Impl>(socket, utfTo<std::string>(server), caCertFilePath)) {} //throw SysError
-zen::TlsContext::~TlsContext() {}
-size_t zen::TlsContext::tryRead ( void* buffer, size_t bytesToRead ) { return pimpl_->tryRead (buffer, bytesToRead); } //throw SysError
-size_t zen::TlsContext::tryWrite(const void* buffer, size_t bytesToWrite) { return pimpl_->tryWrite(buffer, bytesToWrite); } //throw SysError
-
-
bool zen::isPuttyKeyStream(const std::string& keyStream)
{
std::string firstLine(keyStream.begin(), std::find_if(keyStream.begin(), keyStream.end(), isLineBreak<char>));
@@ -727,8 +500,8 @@ std::string zen::convertPuttyKeyToPkix(const std::string& keyStream, const std::
const auto block2 = std::string("\0\0\0\1", 4) + passphrase;
unsigned char key[2 * SHA_DIGEST_LENGTH] = {};
- SHA1(reinterpret_cast<const unsigned char*>(block1.c_str()), block1.size(), &key[0]); //no-fail
- SHA1(reinterpret_cast<const unsigned char*>(block2.c_str()), block2.size(), &key[SHA_DIGEST_LENGTH]); //
+ ::SHA1(reinterpret_cast<const unsigned char*>(block1.c_str()), block1.size(), &key[0]); //no-fail
+ ::SHA1(reinterpret_cast<const unsigned char*>(block2.c_str()), block2.size(), &key[SHA_DIGEST_LENGTH]); //
EVP_CIPHER_CTX* cipCtx = ::EVP_CIPHER_CTX_new();
if (!cipCtx)
@@ -771,7 +544,7 @@ std::string zen::convertPuttyKeyToPkix(const std::string& keyStream, const std::
macKeyBlob += passphrase;
unsigned char macKey[SHA_DIGEST_LENGTH] = {};
- SHA1(reinterpret_cast<const unsigned char*>(macKeyBlob.c_str()), macKeyBlob.size(), &macKey[0]); //no-fail
+ ::SHA1(reinterpret_cast<const unsigned char*>(macKeyBlob.c_str()), macKeyBlob.size(), &macKey[0]); //no-fail
auto numToBeString = [](size_t n) -> std::string
{
@@ -886,6 +659,40 @@ std::string zen::convertPuttyKeyToPkix(const std::string& keyStream, const std::
throw SysError(formatLastOpenSSLError("BN_mod"));
//----------------------------------------------------------
+#if OPENSSL_VERSION_NUMBER >= 0x30000000L
+ OSSL_PARAM_BLD* paramBld = ::OSSL_PARAM_BLD_new();
+ if (!paramBld)
+ throw SysError(formatLastOpenSSLError("OSSL_PARAM_BLD_new"));
+ ZEN_ON_SCOPE_EXIT(::OSSL_PARAM_BLD_free(paramBld));
+
+ if (::OSSL_PARAM_BLD_push_BN(paramBld, OSSL_PKEY_PARAM_RSA_N, n.get()) != 1) throw SysError(formatLastOpenSSLError("OSSL_PARAM_BLD_push_BN(n)"));
+ if (::OSSL_PARAM_BLD_push_BN(paramBld, OSSL_PKEY_PARAM_RSA_E, e.get()) != 1) throw SysError(formatLastOpenSSLError("OSSL_PARAM_BLD_push_BN(e)"));
+ if (::OSSL_PARAM_BLD_push_BN(paramBld, OSSL_PKEY_PARAM_RSA_D, d.get()) != 1) throw SysError(formatLastOpenSSLError("OSSL_PARAM_BLD_push_BN(d)"));
+ if (::OSSL_PARAM_BLD_push_BN(paramBld, OSSL_PKEY_PARAM_RSA_FACTOR1, p.get()) != 1) throw SysError(formatLastOpenSSLError("OSSL_PARAM_BLD_push_BN(p)"));
+ if (::OSSL_PARAM_BLD_push_BN(paramBld, OSSL_PKEY_PARAM_RSA_FACTOR2, q.get()) != 1) throw SysError(formatLastOpenSSLError("OSSL_PARAM_BLD_push_BN(q)"));
+ if (::OSSL_PARAM_BLD_push_BN(paramBld, OSSL_PKEY_PARAM_RSA_EXPONENT1, dmp1.get()) != 1) throw SysError(formatLastOpenSSLError("OSSL_PARAM_BLD_push_BN(dmp1)"));
+ if (::OSSL_PARAM_BLD_push_BN(paramBld, OSSL_PKEY_PARAM_RSA_EXPONENT2, dmq1.get()) != 1) throw SysError(formatLastOpenSSLError("OSSL_PARAM_BLD_push_BN(dmq1)"));
+ if (::OSSL_PARAM_BLD_push_BN(paramBld, OSSL_PKEY_PARAM_RSA_COEFFICIENT1, iqmp.get()) != 1) throw SysError(formatLastOpenSSLError("OSSL_PARAM_BLD_push_BN(iqmp)"));
+
+ OSSL_PARAM* sslParams = ::OSSL_PARAM_BLD_to_param(paramBld);
+ if (!sslParams)
+ throw SysError(formatLastOpenSSLError("OSSL_PARAM_BLD_to_param"));
+ ZEN_ON_SCOPE_EXIT(::OSSL_PARAM_free(sslParams));
+
+
+ EVP_PKEY_CTX* evpCtx = ::EVP_PKEY_CTX_new_from_name(nullptr, "RSA", nullptr);
+ if (!evpCtx)
+ throw SysError(formatLastOpenSSLError("EVP_PKEY_CTX_new_from_name(RSA)"));
+ ZEN_ON_SCOPE_EXIT(::EVP_PKEY_CTX_free(evpCtx));
+
+ if (::EVP_PKEY_fromdata_init(evpCtx) != 1)
+ throw SysError(formatLastOpenSSLError("EVP_PKEY_fromdata_init"));
+
+ EVP_PKEY* evp = nullptr;
+ if (::EVP_PKEY_fromdata(evpCtx, &evp, EVP_PKEY_KEYPAIR, sslParams) != 1)
+ throw SysError(formatLastOpenSSLError("EVP_PKEY_fromdata"));
+ ZEN_ON_SCOPE_EXIT(::EVP_PKEY_free(evp));
+#else
RSA* rsa = ::RSA_new();
if (!rsa)
throw SysError(formatLastOpenSSLError("RSA_new"));
@@ -907,7 +714,7 @@ std::string zen::convertPuttyKeyToPkix(const std::string& keyStream, const std::
if (::EVP_PKEY_set1_RSA(evp, rsa) != 1) //no ownership transfer (internally ref-counted)
throw SysError(formatLastOpenSSLError("EVP_PKEY_set1_RSA"));
-
+#endif
return keyToStream(evp, RsaStreamType::pkix, false /*publicKey*/); //throw SysError
}
//----------------------------------------------------------
@@ -919,7 +726,37 @@ std::string zen::convertPuttyKeyToPkix(const std::string& keyStream, const std::
std::unique_ptr<BIGNUM, BnFree> pub = extractBigNumPub (); //
std::unique_ptr<BIGNUM, BnFree> pri = extractBigNumPriv(); //
//----------------------------------------------------------
-
+#if OPENSSL_VERSION_NUMBER >= 0x30000000L
+ OSSL_PARAM_BLD* paramBld = ::OSSL_PARAM_BLD_new();
+ if (!paramBld)
+ throw SysError(formatLastOpenSSLError("OSSL_PARAM_BLD_new"));
+ ZEN_ON_SCOPE_EXIT(::OSSL_PARAM_BLD_free(paramBld));
+
+ if (::OSSL_PARAM_BLD_push_BN(paramBld, OSSL_PKEY_PARAM_FFC_P, p.get()) != 1) throw SysError(formatLastOpenSSLError("OSSL_PARAM_BLD_push_BN(p)"));
+ if (::OSSL_PARAM_BLD_push_BN(paramBld, OSSL_PKEY_PARAM_FFC_Q, q.get()) != 1) throw SysError(formatLastOpenSSLError("OSSL_PARAM_BLD_push_BN(q)"));
+ if (::OSSL_PARAM_BLD_push_BN(paramBld, OSSL_PKEY_PARAM_FFC_G, g.get()) != 1) throw SysError(formatLastOpenSSLError("OSSL_PARAM_BLD_push_BN(g)"));
+ if (::OSSL_PARAM_BLD_push_BN(paramBld, OSSL_PKEY_PARAM_PUB_KEY, pub.get()) != 1) throw SysError(formatLastOpenSSLError("OSSL_PARAM_BLD_push_BN(pub)"));
+ if (::OSSL_PARAM_BLD_push_BN(paramBld, OSSL_PKEY_PARAM_PRIV_KEY, pri.get()) != 1) throw SysError(formatLastOpenSSLError("OSSL_PARAM_BLD_push_BN(pri)"));
+
+ OSSL_PARAM* sslParams = ::OSSL_PARAM_BLD_to_param(paramBld);
+ if (!sslParams)
+ throw SysError(formatLastOpenSSLError("OSSL_PARAM_BLD_to_param"));
+ ZEN_ON_SCOPE_EXIT(::OSSL_PARAM_free(sslParams));
+
+
+ EVP_PKEY_CTX* evpCtx = ::EVP_PKEY_CTX_new_from_name(nullptr, "DSA", nullptr);
+ if (!evpCtx)
+ throw SysError(formatLastOpenSSLError("EVP_PKEY_CTX_new_from_name(DSA)"));
+ ZEN_ON_SCOPE_EXIT(::EVP_PKEY_CTX_free(evpCtx));
+
+ if (::EVP_PKEY_fromdata_init(evpCtx) != 1)
+ throw SysError(formatLastOpenSSLError("EVP_PKEY_fromdata_init"));
+
+ EVP_PKEY* evp = nullptr;
+ if (::EVP_PKEY_fromdata(evpCtx, &evp, EVP_PKEY_KEYPAIR, sslParams) != 1)
+ throw SysError(formatLastOpenSSLError("EVP_PKEY_fromdata"));
+ ZEN_ON_SCOPE_EXIT(::EVP_PKEY_free(evp));
+#else
DSA* dsa = ::DSA_new();
if (!dsa)
throw SysError(formatLastOpenSSLError("DSA_new"));
@@ -938,7 +775,7 @@ std::string zen::convertPuttyKeyToPkix(const std::string& keyStream, const std::
if (::EVP_PKEY_set1_DSA(evp, dsa) != 1) //no ownership transfer (internally ref-counted)
throw SysError(formatLastOpenSSLError("EVP_PKEY_set1_DSA"));
-
+#endif
return keyToStream(evp, RsaStreamType::pkix, false /*publicKey*/); //throw SysError
}
//----------------------------------------------------------
@@ -953,7 +790,51 @@ std::string zen::convertPuttyKeyToPkix(const std::string& keyStream, const std::
const std::string pointStream = extractStringPub();
std::unique_ptr<BIGNUM, BnFree> pri = extractBigNumPriv(); //throw SysError
//----------------------------------------------------------
+#if OPENSSL_VERSION_NUMBER >= 0x30000000L
+ const char* groupName = [&]
+ {
+ if (algoShort == "nistp256")
+ return SN_X9_62_prime256v1; //same as SECG secp256r1
+ if (algoShort == "nistp384")
+ return SN_secp384r1;
+ if (algoShort == "nistp521")
+ return SN_secp521r1;
+ throw SysError(L"Unknown elliptic curve: " + utfTo<std::wstring>(algorithm));
+ }();
+
+ OSSL_PARAM_BLD* paramBld = ::OSSL_PARAM_BLD_new();
+ if (!paramBld)
+ throw SysError(formatLastOpenSSLError("OSSL_PARAM_BLD_new"));
+ ZEN_ON_SCOPE_EXIT(::OSSL_PARAM_BLD_free(paramBld));
+
+ if (::OSSL_PARAM_BLD_push_utf8_string(paramBld, OSSL_PKEY_PARAM_GROUP_NAME, groupName, 0) != 1)
+ throw SysError(formatLastOpenSSLError("OSSL_PARAM_BLD_push_utf8_string(group)"));
+
+ if (::OSSL_PARAM_BLD_push_octet_string(paramBld, OSSL_PKEY_PARAM_PUB_KEY, &pointStream[0], pointStream.size()) != 1)
+ throw SysError(formatLastOpenSSLError("OSSL_PARAM_BLD_push_octet_string(pub)"));
+ if (::OSSL_PARAM_BLD_push_BN(paramBld, OSSL_PKEY_PARAM_PRIV_KEY, pri.get()) != 1)
+ throw SysError(formatLastOpenSSLError("OSSL_PARAM_BLD_push_BN(priv)"));
+
+ OSSL_PARAM* sslParams = ::OSSL_PARAM_BLD_to_param(paramBld);
+ if (!sslParams)
+ throw SysError(formatLastOpenSSLError("OSSL_PARAM_BLD_to_param"));
+ ZEN_ON_SCOPE_EXIT(::OSSL_PARAM_free(sslParams));
+
+
+ EVP_PKEY_CTX* evpCtx = ::EVP_PKEY_CTX_new_from_name(nullptr, "EC", nullptr);
+ if (!evpCtx)
+ throw SysError(formatLastOpenSSLError("EVP_PKEY_CTX_new_from_name(EC)"));
+ ZEN_ON_SCOPE_EXIT(::EVP_PKEY_CTX_free(evpCtx));
+
+ if (::EVP_PKEY_fromdata_init(evpCtx) != 1)
+ throw SysError(formatLastOpenSSLError("EVP_PKEY_fromdata_init"));
+
+ EVP_PKEY* evp = nullptr;
+ if (::EVP_PKEY_fromdata(evpCtx, &evp, EVP_PKEY_KEYPAIR, sslParams) != 1)
+ throw SysError(formatLastOpenSSLError("EVP_PKEY_fromdata"));
+ ZEN_ON_SCOPE_EXIT(::EVP_PKEY_free(evp));
+#else
const int curveNid = [&]
{
if (algoShort == "nistp256")
@@ -999,7 +880,7 @@ std::string zen::convertPuttyKeyToPkix(const std::string& keyStream, const std::
if (::EVP_PKEY_set1_EC_KEY(evp, ecKey) != 1) //no ownership transfer (internally ref-counted)
throw SysError(formatLastOpenSSLError("EVP_PKEY_set1_EC_KEY"));
-
+#endif
return keyToStream(evp, RsaStreamType::pkix, false /*publicKey*/); //throw SysError
}
//----------------------------------------------------------
diff --git a/zen/open_ssl.h b/zen/open_ssl.h
index 2b0c7245..d1b823de 100644
--- a/zen/open_ssl.h
+++ b/zen/open_ssl.h
@@ -36,23 +36,6 @@ std::string convertRsaKey(const std::string& keyStream, RsaStreamType typeFrom,
bool isPuttyKeyStream(const std::string& keyStream);
std::string convertPuttyKeyToPkix(const std::string& keyStream, const std::string& passphrase); //throw SysError
-
-
-class TlsContext
-{
-public:
- TlsContext(int socket, //throw SysError
- const Zstring& server,
- const Zstring* caCertFilePath /*optional: enable certificate validation*/);
- ~TlsContext();
-
- size_t tryRead( void* buffer, size_t bytesToRead ); //throw SysError; may return short, only 0 means EOF!
- size_t tryWrite(const void* buffer, size_t bytesToWrite); //throw SysError; may return short! CONTRACT: bytesToWrite > 0
-
-private:
- class Impl;
- const std::unique_ptr<Impl> pimpl_;
-};
}
#endif //OPEN_SSL_H_801974580936508934568792347506
diff --git a/zen/stream_buffer.h b/zen/stream_buffer.h
new file mode 100644
index 00000000..8b8cd0d7
--- /dev/null
+++ b/zen/stream_buffer.h
@@ -0,0 +1,161 @@
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: https://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
+
+#ifndef STREAM_BUFFER_H_08492572089560298
+#define STREAM_BUFFER_H_08492572089560298
+
+#include <condition_variable>
+#include "ring_buffer.h"
+#include "string_tools.h"
+
+
+namespace zen
+{
+/* implement streaming API on top of libcurl's icky callback-based design
+ => support copying arbitrarily-large files: https://freefilesync.org/forum/viewtopic.php?t=4471
+ => maximum performance through async processing (prefetching + output buffer!)
+ => cost per worker thread creation ~ 1/20 ms */
+class AsyncStreamBuffer
+{
+public:
+ explicit AsyncStreamBuffer(size_t bufferSize) : bufSize_(bufferSize) { ringBuf_.reserve(bufferSize); }
+
+ //context of input thread, blocking
+ //return "bytesToRead" bytes unless end of stream!
+ size_t read(void* buffer, size_t bytesToRead) //throw <write error>
+ {
+ if (bytesToRead == 0) //"read() with a count of 0 returns zero" => indistinguishable from end of file! => check!
+ throw std::logic_error("Contract violation! " + std::string(__FILE__) + ':' + numberTo<std::string>(__LINE__));
+
+ auto it = static_cast<std::byte*>(buffer);
+ const auto itEnd = it + bytesToRead;
+
+ for (std::unique_lock dummy(lockStream_); it != itEnd;)
+ {
+ assert(!errorRead_);
+ conditionBytesWritten_.wait(dummy, [this] { return errorWrite_ || !ringBuf_.empty() || eof_; });
+
+ if (errorWrite_)
+ std::rethrow_exception(errorWrite_); //throw <write error>
+
+ const size_t junkSize = std::min(static_cast<size_t>(itEnd - it), ringBuf_.size());
+ ringBuf_.extract_front(it, it + junkSize);
+ it += junkSize;
+
+ conditionBytesRead_.notify_all();
+
+ if (eof_) //end of file
+ break;
+ }
+
+ const size_t bytesRead = it - static_cast<std::byte*>(buffer);
+ totalBytesRead_ += bytesRead;
+ return bytesRead;
+ }
+
+ //context of output thread, blocking
+ void write(const void* buffer, size_t bytesToWrite) //throw <read error>
+ {
+ totalBytesWritten_ += bytesToWrite; //bytes already processed as far as raw FTP access is concerned
+
+ auto it = static_cast<const std::byte*>(buffer);
+ const auto itEnd = it + bytesToWrite;
+
+ for (std::unique_lock dummy(lockStream_); it != itEnd;)
+ {
+ assert(!eof_ && !errorWrite_);
+ /* => can't use InterruptibleThread's interruptibleWait() :(
+ -> AsyncStreamBuffer is used for input and output streaming
+ => both AsyncStreamBuffer::write()/read() would have to implement interruptibleWait()
+ => one of these usually called from main thread
+ => but interruptibleWait() cannot be called from main thread! */
+ conditionBytesRead_.wait(dummy, [this] { return errorRead_ || ringBuf_.size() < bufSize_; });
+
+ if (errorRead_)
+ std::rethrow_exception(errorRead_); //throw <read error>
+
+ const size_t junkSize = std::min(static_cast<size_t>(itEnd - it), bufSize_ - ringBuf_.size());
+ ringBuf_.insert_back(it, it + junkSize);
+ it += junkSize;
+
+ conditionBytesWritten_.notify_all();
+ }
+ }
+
+ //context of output thread
+ void closeStream()
+ {
+ {
+ std::lock_guard dummy(lockStream_);
+ assert(!eof_ && !errorWrite_);
+ eof_ = true;
+ }
+ conditionBytesWritten_.notify_all();
+ }
+
+ //context of input thread
+ void setReadError(const std::exception_ptr& error)
+ {
+ {
+ std::lock_guard dummy(lockStream_);
+ assert(!errorRead_);
+ if (!errorRead_)
+ errorRead_ = error;
+ }
+ conditionBytesRead_.notify_all();
+ }
+
+ //context of output thread
+ void setWriteError(const std::exception_ptr& error)
+ {
+ {
+ std::lock_guard dummy(lockStream_);
+ assert(!errorWrite_);
+ if (!errorWrite_)
+ errorWrite_ = error;
+ }
+ conditionBytesWritten_.notify_all();
+ }
+
+ //context of *output* thread
+ void checkReadErrors() //throw <read error>
+ {
+ std::lock_guard dummy(lockStream_);
+ if (errorRead_)
+ std::rethrow_exception(errorRead_); //throw <read error>
+ }
+
+#if 0 //function not needed: when EOF is reached (without errors), reading is done => no further error can occur!
+ void checkWriteErrors() //throw <write error>
+ {
+ std::lock_guard dummy(lockStream_);
+ if (errorWrite_)
+ std::rethrow_exception(errorWrite_); //throw <write error>
+ }
+#endif
+
+ uint64_t getTotalBytesWritten() const { return totalBytesWritten_; }
+ uint64_t getTotalBytesRead () const { return totalBytesRead_; }
+
+private:
+ AsyncStreamBuffer (const AsyncStreamBuffer&) = delete;
+ AsyncStreamBuffer& operator=(const AsyncStreamBuffer&) = delete;
+
+ const size_t bufSize_;
+ std::mutex lockStream_;
+ RingBuffer<std::byte> ringBuf_; //prefetch/output buffer
+ bool eof_ = false;
+ std::exception_ptr errorWrite_;
+ std::exception_ptr errorRead_;
+ std::condition_variable conditionBytesWritten_;
+ std::condition_variable conditionBytesRead_;
+
+ std::atomic<uint64_t> totalBytesWritten_{0}; //std:atomic is uninitialized by default!
+ std::atomic<uint64_t> totalBytesRead_ {0}; //
+};
+}
+
+#endif //STREAM_BUFFER_H_08492572089560298
diff --git a/zen/string_base.h b/zen/string_base.h
index 5c17fb47..693ce118 100644
--- a/zen/string_base.h
+++ b/zen/string_base.h
@@ -10,7 +10,6 @@
#include <algorithm>
#include <atomic>
#include "string_tools.h"
-#include "legacy_compiler.h" //constinit
//Zbase - a policy based string class optimizing performance and flexibility
@@ -298,6 +297,11 @@ private:
Zbase& operator= (int) = delete; //detect usage errors by creating an intentional ambiguity with "Char"
Zbase& operator+= (int) = delete; //
void push_back (int) = delete; //
+ Zbase (std::nullptr_t) = delete;
+ Zbase(size_t count, std::nullptr_t) = delete;
+ Zbase& operator= (std::nullptr_t) = delete;
+ Zbase& operator+= (std::nullptr_t) = delete;
+ void push_back (std::nullptr_t) = delete;
Char* rawStr_;
};
diff --git a/zen/sys_info.cpp b/zen/sys_info.cpp
index edb8dd9d..54a5ecae 100644
--- a/zen/sys_info.cpp
+++ b/zen/sys_info.cpp
@@ -28,7 +28,7 @@ Zstring zen::getLoginUser() //throw FileError
{
const uid_t userIdNo = ::getuid(); //never fails
- if (userIdNo != 0) //nofail; root(0) => consider as request for elevation, NOT impersonation
+ if (userIdNo != 0) //nofail; non-root
{
std::vector<char> buf(std::max<long>(10000, ::sysconf(_SC_GETPW_R_SIZE_MAX))); //::sysconf may return long(-1)
passwd buf2 = {};
@@ -45,7 +45,7 @@ Zstring zen::getLoginUser() //throw FileError
return pwsEntry->pw_name;
}
- //else root(0): what now!?
+ //else: root(0) => consider as request for elevation, NOT impersonation!
//getlogin() is smarter than simply evaluating $LOGNAME! even in contexts without
//$LOGNAME, e.g. "sudo su" on Ubuntu, it returns the correct non-root user!
@@ -72,6 +72,29 @@ Zstring zen::getLoginUser() //throw FileError
}
+Zstring zen::getUserDescription() //throw FileError
+{
+ const Zstring userName = getLoginUser(); //throw FileError
+ const Zstring computerName = []() -> Zstring //throw FileError
+ {
+ std::vector<char> buf(10000);
+ if (::gethostname(&buf[0], buf.size()) != 0)
+ THROW_LAST_FILE_ERROR(_("Cannot get process information."), "gethostname");
+
+ Zstring hostName = &buf[0];
+ if (endsWithAsciiNoCase(hostName, ".local")) //strip fluff (macOS) => apparently not added on Linux?
+ hostName = beforeLast(hostName, '.', IfNotFoundReturn::none);
+
+ return hostName;
+ }();
+
+ if (contains(getUpperCase(computerName), getUpperCase(userName)))
+ return userName; //no need for text duplication! e.g. "Zenju (Zenju-PC)"
+
+ return userName + Zstr(" (") + computerName + Zstr(')'); //e.g. "Admin (Zenju-PC)"
+}
+
+
namespace
{
}
diff --git a/zen/sys_info.h b/zen/sys_info.h
index 0126ad2f..0393e1fb 100644
--- a/zen/sys_info.h
+++ b/zen/sys_info.h
@@ -15,6 +15,8 @@ namespace zen
//COM needs to be initialized before calling any of these functions! CoInitializeEx/CoUninitialize
Zstring getLoginUser(); //throw FileError
+Zstring getUserDescription();//throw FileError
+
struct ComputerModel
{
diff --git a/zen/type_traits.h b/zen/type_traits.h
index a4194c05..aca80393 100644
--- a/zen/type_traits.h
+++ b/zen/type_traits.h
@@ -184,4 +184,10 @@ LessDescending<Predicate> makeSortDirection(Predicate pred, std::false_type) { r
template<class T> constexpr bool HasMemberTypeV_##TYPENAME = HasMemberType_##TYPENAME<T>::value;
}
+
+//---------------------------------------------------------------------------
+//ZEN macro consistency checks: => place in most-used header!
+
+
+
#endif //TYPE_TRAITS_H_3425628658765467
diff --git a/zen/zstring.cpp b/zen/zstring.cpp
index c9861219..34d52b2c 100644
--- a/zen/zstring.cpp
+++ b/zen/zstring.cpp
@@ -166,10 +166,10 @@ std::weak_ordering compareNoCaseUtf8(const char* lhs, size_t lhsLen, const char*
std::weak_ordering compareNatural(const Zstring& lhs, const Zstring& rhs)
{
- //Unicode normal forms:
- // Windows: CompareString() already ignores NFD/NFC differences: nice...
- // Linux: g_unichar_toupper() can't ignore differences
- // macOS: CFStringCompare() considers differences
+ /* Unicode normal forms:
+ Windows: CompareString() already ignores NFD/NFC differences: nice...
+ Linux: g_unichar_toupper() can't ignore differences
+ macOS: CFStringCompare() considers differences */
const Zstring& lhsNorm = getUnicodeNormalForm(lhs);
const Zstring& rhsNorm = getUnicodeNormalForm(rhs);
diff --git a/zen/zstring.h b/zen/zstring.h
index 1afebe58..b8dfb9a3 100644
--- a/zen/zstring.h
+++ b/zen/zstring.h
@@ -138,7 +138,7 @@ Zstring getFileExtension(const Zstring& filePath)
//common unicode characters
const wchar_t EN_DASH = L'\u2013';
const wchar_t EM_DASH = L'\u2014';
-const wchar_t* const SPACED_DASH = L" \u2014 "; //using 'EM DASH'
+ const wchar_t* const SPACED_DASH = L" \u2014 "; //using 'EM DASH'
const wchar_t LTR_MARK = L'\u200E'; //UTF-8: E2 80 8E
const wchar_t* const ELLIPSIS = L"\u2026"; //"..."
const wchar_t MULT_SIGN = L'\u00D7'; //fancy "x"
@@ -151,11 +151,4 @@ const wchar_t BIDI_POP_DIR_ISOLATE = L'\u2069'; //UTF-8: E2 81 A9 => not work
const wchar_t BIDI_DIR_EMBEDDING_RTL = L'\u202B'; //UTF-8: E2 80 AB => not working on Win 10
const wchar_t BIDI_POP_DIR_FORMATTING = L'\u202C'; //UTF-8: E2 80 AC => not working on Win 10
-
-
-
-//---------------------------------------------------------------------------
-//ZEN macro consistency checks:
-
-
#endif //ZSTRING_H_73425873425789
bgstack15