void CDlgSetFreeRDP::on_pbOk_clicked()
{
int nRet = 0;
if(!ui->wNet->CheckValidity(true)) {
ui->tabWidget->setCurrentIndex(0);
return;
}
if(!m_pProxyUI->CheckValidity(true)) {
ui->tabWidget->setCurrentWidget(m_pProxyUI);
return;
}
if(!m_pRecordUI->CheckValidity(true)) {
ui->tabWidget->setCurrentWidget(m_pRecordUI);
return;
}
m_pSettings->SetName(ui->leName->text());
m_pSettings->SetDomain(ui->leDomain->text());
nRet = ui->wNet->Accept();
if(nRet) return;
nRet = m_pProxyUI->Accept();
if(nRet) return;
nRet = m_pRecordUI->Accept();
if(nRet) return;
m_pSettings->SetOnlyView(ui->cbOnlyView->isChecked());
m_pSettings->SetClipboard(ui->cbClipboard->isChecked());
m_pSettings->SetShowServerName(ui->cbShowServerName->isChecked());
m_pSettings->SetUseMultimon(ui->cbAllMonitor->isChecked());
QString szSize = ui->cbDesktopSize->currentText();
int index = szSize.indexOf("×");
if(-1 < index)
{
UINT32 width = szSize.left(index).toInt();
UINT32 height = szSize.right(szSize.length() - index - 1).toInt();
m_pSettings->SetDesktopWidth(width);
m_pSettings->SetDesktopHeight(height);
}
m_pSettings->SetColorDepth(ui->cbColorDepth->currentData().toInt());
m_pSettings->SetReconnectInterval(ui->sbReconnect->value());
m_pSettings->SetRedirectionPrinter(ui->cbPrinter->isChecked());
m_pSettings->SetEnableLocalInputMethod(ui->cbEnableLocalInputMethod->isChecked());
if(HasAudioOutput()) {
CParameterFreeRDP::RedirecionSoundType tRdirectionSound
= CParameterFreeRDP::RedirecionSoundType::Disable;
if(ui->rbAudioDisable->isChecked())
tRdirectionSound = CParameterFreeRDP::RedirecionSoundType::Disable;
else if(ui->rbAudioLocal->isChecked())
tRdirectionSound = CParameterFreeRDP::RedirecionSoundType::Local;
else if(ui->rbAudioRemote->isChecked())
tRdirectionSound = CParameterFreeRDP::RedirecionSoundType::Remote;
m_pSettings->SetRedirectionSound(tRdirectionSound);
} else {
m_pSettings->SetRedirectionSound(
CParameterFreeRDP::RedirecionSoundType::Disable);
}
m_pSettings->SetRedirectionSoundParameters(ui->leRdpSnd->text());
if(HasAudioInput())
m_pSettings->SetRedirectionMicrophone(ui->cbAudin->isChecked());
else
m_pSettings->SetRedirectionMicrophone(false);
m_pSettings->SetRedirectionMicrophoneParameters(ui->leAudin->text());
QStringList lstDrives;
QModelIndexList selected = ui->tvDrive->selectionModel()->selectedRows(0);
QList<QModelIndex>::iterator it;
QModelIndex modelIndex;
QString szPath;
for (it = selected.begin(); it != selected.end(); ++it)
{
modelIndex = *it;
szPath = m_pFileModel->filePath(modelIndex);
if(!szPath.isEmpty())
lstDrives.append(szPath);
}
m_pSettings->SetRedirectionDrives(lstDrives);
m_pSettings->SetNegotiateSecurityLayer(ui->cbSecurityEnable->isChecked());
uint security = 0;
if(ui->cbSecurityRDP->isChecked())
security |= CParameterFreeRDP::Security::RDP;
if(ui->cbSecurityTls->isChecked())
security |= CParameterFreeRDP::Security::TLS;
if(ui->cbSecurityNLA->isChecked())
security |= CParameterFreeRDP::Security::NLA;
if(ui->cbSecurityNlaExt->isChecked())
security |= CParameterFreeRDP::Security::NLA_Ext;
if(ui->cbSecurityRDSTLS->isChecked())
security |= CParameterFreeRDP::Security::RDSTLS;
if(ui->cbSecurityRDSAAD->isChecked())
security |= CParameterFreeRDP::Security::RDSAAD;
m_pSettings->SetSecurity((CParameterFreeRDP::Security)security);
if(ui->rbTls1_0->isChecked())
m_pSettings->SetTlsVersion(TLS1_VERSION);
else if(ui->rbTls1_1->isChecked())
m_pSettings->SetTlsVersion(TLS1_1_VERSION);
else if(ui->rbTls1_2->isChecked())
m_pSettings->SetTlsVersion(TLS1_2_VERSION);
else if(ui->rbTls1_3->isChecked())
m_pSettings->SetTlsVersion(TLS1_3_VERSION);
m_pSettings->SetConnectType(ui->cbConnectType->currentData().toUInt());
UINT32 performanceFlags = 0;
if(!ui->cbDesktopBackground->isChecked())
performanceFlags |= PERF_DISABLE_WALLPAPER;
if(!ui->cbWindowDrag->isChecked())
performanceFlags |= PERF_DISABLE_FULLWINDOWDRAG;
if(!ui->cbMenuAnims->isChecked())
performanceFlags |= PERF_DISABLE_MENUANIMATIONS;
if(!ui->cbThemes->isChecked())
performanceFlags |= PERF_DISABLE_THEMING;
if(ui->cbFontSmoothing->isChecked())
performanceFlags |= PERF_ENABLE_FONT_SMOOTHING;
if(ui->cbDesktopCompositing->isChecked())
performanceFlags |= PERF_ENABLE_DESKTOP_COMPOSITION;
m_pSettings->SetPerformanceFlags(performanceFlags);
accept();
}