diff --git a/Src/FwCoreDlgs/BackupRestore/RestoreProjectDlg.cs b/Src/FwCoreDlgs/BackupRestore/RestoreProjectDlg.cs index e5f6581c51..0bbb6b4420 100644 --- a/Src/FwCoreDlgs/BackupRestore/RestoreProjectDlg.cs +++ b/Src/FwCoreDlgs/BackupRestore/RestoreProjectDlg.cs @@ -265,6 +265,7 @@ private void m_rdoRestoreToName_CheckedChanged(object sender, EventArgs e) m_presenter.EmptyProjectName = false; if (m_txtOtherProjectName.Enabled && m_txtOtherProjectName.Text == String.Empty) m_txtOtherProjectName.Text = m_presenter.GetSuggestedNewProjectName(); + UpdateSendReceiveDataOption(); } private void m_btnBrowse_Click(object sender, EventArgs e) @@ -372,8 +373,7 @@ private void SetDialogControlsFromBackupSettings(BackupFileSettings settings, St m_supportingFiles.Enabled = settings.IncludeSupportingFiles; m_spellCheckAdditions.Checked = settings.IncludeSpellCheckAdditions; m_spellCheckAdditions.Enabled = settings.IncludeSpellCheckAdditions; - m_sendReceiveData.Checked = settings.IncludeSendReceiveData; - m_sendReceiveData.Enabled = settings.IncludeSendReceiveData; + UpdateSendReceiveDataOption(); if (m_rdoDefaultFolder.Checked) m_lblDefaultBackupIncludes.Text = m_presenter.IncludesFiles(settings); else @@ -386,6 +386,22 @@ private void SetDialogControlsFromBackupSettings(BackupFileSettings settings, St SetOriginalNameFromSettings(); } + /// ------------------------------------------------------------------------------------ + /// + /// Sets the Send/Receive option from the restore target. Restoring over the original + /// project keeps that project's repository history, so the option is forced on; + /// restoring to a different name leaves it off unless the user opts in (LT-22738). + /// It is unavailable either way when the backup holds no Send/Receive data. + /// + /// ------------------------------------------------------------------------------------ + private void UpdateSendReceiveDataOption() + { + var backupHasSendReceiveData = Settings.Backup != null && Settings.Backup.IncludeSendReceiveData; + var restoringToOriginalName = m_rdoUseOriginalName.Checked; + m_sendReceiveData.Checked = backupHasSendReceiveData && restoringToOriginalName; + m_sendReceiveData.Enabled = backupHasSendReceiveData && !restoringToOriginalName; + } + private void m_btnHelp_Click(object sender, EventArgs e)