/*************************************************************************** * Copyright (C) 2004 by Christoph Thielecke * * crissi99@gmx.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the * * Free Software Foundation, Inc., * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ //BEGIN includes #include #include #include #include #include #include #include #include "advancedsettingsdialog.h" #include "toolinfo.h" #include //END includes AdvancedSettingsDialog::AdvancedSettingsDialog(TQWidget *parent, const TQString& caption, VpnAccountData *currentProfile, VpnAccountData::ConnectionType connectionType, KVpncConfig *GlobalConfig) : KDialogBase( parent, "Advanced_settings", true, caption, KDialogBase::Ok|KDialogBase::Cancel, KDialogBase::Ok, true ) { main = new AdvancedProfileDialogBase(this); setMainWidget(main); main->setMinimumSize(main->sizeHint()); this->currentProfile = currentProfile; this->connectionType = connectionType; connect (main->AdvancedSettingsCheckbox, TQ_SIGNAL(toggled(bool)),this, TQ_SLOT(advancedSettingsToggled(bool))); connect (main->ApplicationVersionCheckbox, TQ_SIGNAL(toggled(bool)),this, TQ_SLOT(applicationVersionToggled(bool))); connect (main->PerfectForwardSecurityCheckbox, TQ_SIGNAL(toggled(bool)),this, TQ_SLOT(perfectForwardSecurityToggled(bool))); connect (main->IkeGroupCheckbox, TQ_SIGNAL(toggled(bool)),this, TQ_SLOT(IkeGroupToggled(bool))); connect (main->SingleDesCheckbox, TQ_SIGNAL(toggled(bool)),this, TQ_SLOT(singleDesToggled(bool))); main->IkeGroupCheckbox->setEnabled( false ); main->PerfectForwardSecrecyCombobox->setEnabled( false ); main->SingleDesCheckbox->setEnabled( false ); main->ApplicationVersionLineedit->setEnabled( false ); main->PerfectForwardSecurityCheckbox->setEnabled( false ); main->IkeGroupCombobox->setEnabled( false ); main->ApplicationVersionCheckbox->setEnabled( false ); main->IkeGroupCombobox->setEnabled( false ); TQString vpnc_version=""; ToolInfo *tool; for ( tool = GlobalConfig->ToolList->first(); tool; tool = GlobalConfig->ToolList->next() ) { // std::cout << "tool: " << tool->Name << std::endl; // std::cout << "Version: " << tool->Version << std::endl; // std::cout << "Path: " << tool->PathToExec << std::endl << std::endl; if (tool->Name == "vpnc" ) { vpnc_version=tool->Version; break; } } if (currentProfile->getConnectionType() == VpnAccountData::ConnectionType(VpnAccountData::cisco)) { //main->PerfectForwardSecrecyCombobox->setEnabled( false ); main->PerfectForwardSecrecyCombobox->clear(); main->PerfectForwardSecrecyCombobox->insertItem( "server" ); main->PerfectForwardSecrecyCombobox->insertItem( "nopfs" ); main->PerfectForwardSecrecyCombobox->insertItem( "dh1" ); main->PerfectForwardSecrecyCombobox->insertItem( "dh2" ); main->PerfectForwardSecrecyCombobox->insertItem( "dh5"); //main->IkeGroupCombobox->setEnabled( false ); main->IkeGroupCombobox->clear(); main->IkeGroupCombobox->insertItem( "dh1"); main->IkeGroupCombobox->insertItem( "dh2"); main->IkeGroupCombobox->insertItem( "dh5"); } else if (currentProfile->getConnectionType() == VpnAccountData::ConnectionType(VpnAccountData::racoon)) { //main->PerfectForwardSecrecyCombobox->setEnabled( false ); main->PerfectForwardSecrecyCombobox->clear(); main->PerfectForwardSecrecyCombobox->insertItem( "dh1" ); main->PerfectForwardSecrecyCombobox->insertItem( "dh2" ); main->PerfectForwardSecrecyCombobox->insertItem( "dh5" ); main->PerfectForwardSecrecyCombobox->insertItem( "dh14" ); main->PerfectForwardSecrecyCombobox->insertItem( "dh15" ); main->PerfectForwardSecrecyCombobox->insertItem( "dh16" ); main->PerfectForwardSecrecyCombobox->insertItem( "dh17" ); main->PerfectForwardSecrecyCombobox->insertItem( "dh18" ); main->IkeGroupCheckbox->setEnabled( false ); main->IkeGroupCombobox->clear(); main->IkeGroupCombobox->insertItem( "dh1" ); main->IkeGroupCombobox->insertItem( "dh2" ); main->IkeGroupCombobox->insertItem( "dh5" ); main->IkeGroupCombobox->insertItem( "dh1" ); main->IkeGroupCombobox->insertItem( "dh2" ); main->IkeGroupCombobox->insertItem( "dh5" ); main->IkeGroupCombobox->insertItem( "dh14" ); main->IkeGroupCombobox->insertItem( "dh15" ); main->IkeGroupCombobox->insertItem( "dh16" ); main->IkeGroupCombobox->insertItem( "dh17" ); main->IkeGroupCombobox->insertItem( "dh18" ); } main->ApplicationVersionLineedit->setText( "Cisco Systems VPN Client "+vpnc_version+":Linux" ); main->AdvancedSettingsCheckbox->setChecked(currentProfile->getUseAdvancedSettings()); this->advancedSettingsToggled(true); } AdvancedSettingsDialog::~AdvancedSettingsDialog() { delete main; } void AdvancedSettingsDialog::advancedSettingsToggled(bool) { main->IkeGroupCheckbox->setEnabled( false ); main->PerfectForwardSecrecyCombobox->setEnabled( false ); main->SingleDesCheckbox->setEnabled( false ); main->ApplicationVersionLineedit->setEnabled( false ); main->PerfectForwardSecurityCheckbox->setEnabled( false ); main->IkeGroupCombobox->setEnabled( false ); main->ApplicationVersionCheckbox->setEnabled( false ); if ( this->main->AdvancedSettingsCheckbox->isChecked() ) { main->groupBox3->setEnabled(true); if (connectionType == VpnAccountData::ConnectionType(VpnAccountData::cisco)) { //if (currentProfile->getUseAdvancedSettings()) //{ main->SingleDesCheckbox->setEnabled( true ); main->PerfectForwardSecurityCheckbox->setEnabled( true ); main->ApplicationVersionCheckbox->setEnabled( true ); main->PerfectForwardSecurityCheckbox->setEnabled ( true ); main->IkeGroupCheckbox->setEnabled ( true ); } else if (connectionType == VpnAccountData::ConnectionType(VpnAccountData::racoon)) { //main->PerfectForwardSecrecyCombobox->setEnabled( false ); main->SingleDesCheckbox->setEnabled( false ); main->ApplicationVersionLineedit->setEnabled( false ); main->PerfectForwardSecurityCheckbox->setEnabled( true ); main->IkeGroupCombobox->setEnabled( false ); main->ApplicationVersionCheckbox->setEnabled( false ); main->IkeGroupCheckbox->setEnabled( true ); } } else { main->groupBox3->setEnabled(false); } } void AdvancedSettingsDialog::applicationVersionToggled(bool) { if ( main->ApplicationVersionCheckbox->isChecked() ) main->ApplicationVersionLineedit->setEnabled( true ); else main->ApplicationVersionLineedit->setEnabled( false ); } void AdvancedSettingsDialog::IkeGroupToggled(bool) { if ( main->IkeGroupCheckbox->isChecked() ) main->IkeGroupCombobox->setEnabled( true ); else main->IkeGroupCombobox->setEnabled( false ); } void AdvancedSettingsDialog::perfectForwardSecurityToggled(bool) { if ( main->PerfectForwardSecurityCheckbox->isChecked() ) main->PerfectForwardSecrecyCombobox->setEnabled( true ); else main->PerfectForwardSecrecyCombobox->setEnabled( false ); } void AdvancedSettingsDialog::singleDesToggled(bool) {} void AdvancedSettingsDialog::helpClicked() {} void AdvancedSettingsDialog::accept() { currentProfile->setUseAdvancedSettings( this->main->AdvancedSettingsCheckbox->isChecked() ); currentProfile->setApplicationVersion( this->main->ApplicationVersionLineedit->text() ); currentProfile->setUseApplicationVersion( this->main->ApplicationVersionCheckbox->isChecked() ); currentProfile->setIkeGroup( this->main->IkeGroupCombobox->currentText() ); currentProfile->setUseIkeGroup( this->main->IkeGroupCheckbox->isChecked() ); currentProfile->setPerfectForwardSecrety( this->main->PerfectForwardSecrecyCombobox->currentText() ); currentProfile->setUsePerfectForwardSecrety( this->main->PerfectForwardSecurityCheckbox->isChecked() ); currentProfile->setUseSingleDes( this->main->SingleDesCheckbox->isChecked() ); TQDialog::accept(); } #include "advancedsettingsdialog.moc"