|
@@ -17,6 +17,7 @@
|
|
|
#include <HelpWin.h>
|
|
#include <HelpWin.h>
|
|
|
#include <WinConfiguration.h>
|
|
#include <WinConfiguration.h>
|
|
|
#include <StrUtils.hpp>
|
|
#include <StrUtils.hpp>
|
|
|
|
|
+#include <Tools.h>
|
|
|
//---------------------------------------------------------------------------
|
|
//---------------------------------------------------------------------------
|
|
|
#pragma package(smart_init)
|
|
#pragma package(smart_init)
|
|
|
#pragma link "HistoryComboBox"
|
|
#pragma link "HistoryComboBox"
|
|
@@ -33,12 +34,13 @@ bool __fastcall DoSynchronizeDialog(TSynchronizeParamType & Params,
|
|
|
TGetSynchronizeOptionsEvent OnGetOptions,
|
|
TGetSynchronizeOptionsEvent OnGetOptions,
|
|
|
TSynchronizeSessionLog OnSynchronizeSessionLog,
|
|
TSynchronizeSessionLog OnSynchronizeSessionLog,
|
|
|
TFeedSynchronizeError & OnFeedSynchronizeError,
|
|
TFeedSynchronizeError & OnFeedSynchronizeError,
|
|
|
|
|
+ TSynchronizeInNewWindow OnSynchronizeInNewWindow,
|
|
|
bool Start)
|
|
bool Start)
|
|
|
{
|
|
{
|
|
|
bool Result;
|
|
bool Result;
|
|
|
TSynchronizeDialog * Dialog = SafeFormCreate<TSynchronizeDialog>(Application);
|
|
TSynchronizeDialog * Dialog = SafeFormCreate<TSynchronizeDialog>(Application);
|
|
|
|
|
|
|
|
- Dialog->Init(OnStartStop, OnGetOptions, OnSynchronizeSessionLog, OnFeedSynchronizeError, Start);
|
|
|
|
|
|
|
+ Dialog->Init(OnStartStop, OnGetOptions, OnSynchronizeSessionLog, OnFeedSynchronizeError, OnSynchronizeInNewWindow, Start);
|
|
|
|
|
|
|
|
try
|
|
try
|
|
|
{
|
|
{
|
|
@@ -94,12 +96,15 @@ void __fastcall TSynchronizeDialog::Init(TSynchronizeStartStopEvent OnStartStop,
|
|
|
TGetSynchronizeOptionsEvent OnGetOptions,
|
|
TGetSynchronizeOptionsEvent OnGetOptions,
|
|
|
TSynchronizeSessionLog OnSynchronizeSessionLog,
|
|
TSynchronizeSessionLog OnSynchronizeSessionLog,
|
|
|
TFeedSynchronizeError & OnFeedSynchronizeError,
|
|
TFeedSynchronizeError & OnFeedSynchronizeError,
|
|
|
|
|
+ TSynchronizeInNewWindow OnSynchronizeInNewWindow,
|
|
|
bool StartImmediately)
|
|
bool StartImmediately)
|
|
|
{
|
|
{
|
|
|
FOnStartStop = OnStartStop;
|
|
FOnStartStop = OnStartStop;
|
|
|
FOnGetOptions = OnGetOptions;
|
|
FOnGetOptions = OnGetOptions;
|
|
|
FOnSynchronizeSessionLog = OnSynchronizeSessionLog;
|
|
FOnSynchronizeSessionLog = OnSynchronizeSessionLog;
|
|
|
FOnFeedSynchronizeError = &OnFeedSynchronizeError;
|
|
FOnFeedSynchronizeError = &OnFeedSynchronizeError;
|
|
|
|
|
+ DebugAssert(OnSynchronizeInNewWindow != NULL);
|
|
|
|
|
+ FOnSynchronizeInNewWindow = OnSynchronizeInNewWindow;
|
|
|
FStartImmediately = StartImmediately;
|
|
FStartImmediately = StartImmediately;
|
|
|
}
|
|
}
|
|
|
//---------------------------------------------------------------------------
|
|
//---------------------------------------------------------------------------
|
|
@@ -180,6 +185,13 @@ void __fastcall TSynchronizeDialog::UpdateControls()
|
|
|
// When minimizing to tray globally, no point showing special "minimize to tray" command
|
|
// When minimizing to tray globally, no point showing special "minimize to tray" command
|
|
|
MinimizeButton->Style =
|
|
MinimizeButton->Style =
|
|
|
!WinConfiguration->MinimizeToTray ? TCustomButton::bsSplitButton : TCustomButton::bsPushButton;
|
|
!WinConfiguration->MinimizeToTray ? TCustomButton::bsSplitButton : TCustomButton::bsPushButton;
|
|
|
|
|
+
|
|
|
|
|
+ StartButton->Style = AllowStartInNewWindow() ? TCustomButton::bsSplitButton : TCustomButton::bsPushButton;
|
|
|
|
|
+}
|
|
|
|
|
+//---------------------------------------------------------------------------
|
|
|
|
|
+bool __fastcall TSynchronizeDialog::AllowStartInNewWindow()
|
|
|
|
|
+{
|
|
|
|
|
+ return !IsMainFormLike(this);
|
|
|
}
|
|
}
|
|
|
//---------------------------------------------------------------------------
|
|
//---------------------------------------------------------------------------
|
|
|
void __fastcall TSynchronizeDialog::ControlChange(TObject * /*Sender*/)
|
|
void __fastcall TSynchronizeDialog::ControlChange(TObject * /*Sender*/)
|
|
@@ -391,6 +403,18 @@ void __fastcall TSynchronizeDialog::DoLog(TSynchronizeController * /*Controller*
|
|
|
}
|
|
}
|
|
|
//---------------------------------------------------------------------------
|
|
//---------------------------------------------------------------------------
|
|
|
void __fastcall TSynchronizeDialog::StartButtonClick(TObject * /*Sender*/)
|
|
void __fastcall TSynchronizeDialog::StartButtonClick(TObject * /*Sender*/)
|
|
|
|
|
+{
|
|
|
|
|
+ if (AllowStartInNewWindow() && OpenInNewWindow())
|
|
|
|
|
+ {
|
|
|
|
|
+ StartInNewWindow();
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+ Start();
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+//---------------------------------------------------------------------------
|
|
|
|
|
+void __fastcall TSynchronizeDialog::Start()
|
|
|
{
|
|
{
|
|
|
bool Synchronize;
|
|
bool Synchronize;
|
|
|
bool Continue = true;
|
|
bool Continue = true;
|
|
@@ -428,10 +452,7 @@ void __fastcall TSynchronizeDialog::StartButtonClick(TObject * /*Sender*/)
|
|
|
{
|
|
{
|
|
|
DebugAssert(!FSynchronizing);
|
|
DebugAssert(!FSynchronizing);
|
|
|
|
|
|
|
|
- LocalDirectoryEdit->SaveToHistory();
|
|
|
|
|
- CustomWinConfiguration->History[L"LocalDirectory"] = LocalDirectoryEdit->Items;
|
|
|
|
|
- RemoteDirectoryEdit->SaveToHistory();
|
|
|
|
|
- CustomWinConfiguration->History[L"RemoteDirectory"] = RemoteDirectoryEdit->Items;
|
|
|
|
|
|
|
+ SaveHistory();
|
|
|
|
|
|
|
|
FSynchronizing = true;
|
|
FSynchronizing = true;
|
|
|
try
|
|
try
|
|
@@ -451,6 +472,14 @@ void __fastcall TSynchronizeDialog::StartButtonClick(TObject * /*Sender*/)
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
//---------------------------------------------------------------------------
|
|
//---------------------------------------------------------------------------
|
|
|
|
|
+void __fastcall TSynchronizeDialog::SaveHistory()
|
|
|
|
|
+{
|
|
|
|
|
+ LocalDirectoryEdit->SaveToHistory();
|
|
|
|
|
+ CustomWinConfiguration->History[L"LocalDirectory"] = LocalDirectoryEdit->Items;
|
|
|
|
|
+ RemoteDirectoryEdit->SaveToHistory();
|
|
|
|
|
+ CustomWinConfiguration->History[L"RemoteDirectory"] = RemoteDirectoryEdit->Items;
|
|
|
|
|
+}
|
|
|
|
|
+//---------------------------------------------------------------------------
|
|
|
void __fastcall TSynchronizeDialog::StopButtonClick(TObject * /*Sender*/)
|
|
void __fastcall TSynchronizeDialog::StopButtonClick(TObject * /*Sender*/)
|
|
|
{
|
|
{
|
|
|
Stop();
|
|
Stop();
|
|
@@ -692,3 +721,22 @@ void __fastcall TSynchronizeDialog::MinimizeButtonDropDownClick(TObject * /*Send
|
|
|
MenuPopup(MinimizeMenu, MinimizeButton);
|
|
MenuPopup(MinimizeMenu, MinimizeButton);
|
|
|
}
|
|
}
|
|
|
//---------------------------------------------------------------------------
|
|
//---------------------------------------------------------------------------
|
|
|
|
|
+void __fastcall TSynchronizeDialog::StartInNewWindow1Click(TObject * /*Sender*/)
|
|
|
|
|
+{
|
|
|
|
|
+ StartInNewWindow();
|
|
|
|
|
+}
|
|
|
|
|
+//---------------------------------------------------------------------------
|
|
|
|
|
+void __fastcall TSynchronizeDialog::StartInNewWindow()
|
|
|
|
|
+{
|
|
|
|
|
+ SaveHistory();
|
|
|
|
|
+ TSynchronizeParamType AParams = Params;
|
|
|
|
|
+ TCopyParamType ACopyParams = CopyParams;
|
|
|
|
|
+ FOnSynchronizeInNewWindow(AParams, &ACopyParams);
|
|
|
|
|
+ Close();
|
|
|
|
|
+}
|
|
|
|
|
+//---------------------------------------------------------------------------
|
|
|
|
|
+void __fastcall TSynchronizeDialog::StartButtonDropDownClick(TObject * /*Sender*/)
|
|
|
|
|
+{
|
|
|
|
|
+ MenuPopup(StartMenu, StartButton);
|
|
|
|
|
+}
|
|
|
|
|
+//---------------------------------------------------------------------------
|