diff options
author | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2011-12-06 12:36:58 -0600 |
---|---|---|
committer | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2011-12-06 12:36:58 -0600 |
commit | d08a0ede1d2cb15bb14b0ff75eacf5c682b1fa0a (patch) | |
tree | e5ce4701bac540038a279b4e208c86390a24ba11 /src/advancedsettingsdialog.cpp | |
download | kvpnc-d08a0ede1d2cb15bb14b0ff75eacf5c682b1fa0a.tar.gz kvpnc-d08a0ede1d2cb15bb14b0ff75eacf5c682b1fa0a.zip |
Initial import of year-and-a-half-old upstream version 0.9.6a
Diffstat (limited to 'src/advancedsettingsdialog.cpp')
-rw-r--r-- | src/advancedsettingsdialog.cpp | 219 |
1 files changed, 219 insertions, 0 deletions
diff --git a/src/advancedsettingsdialog.cpp b/src/advancedsettingsdialog.cpp new file mode 100644 index 0000000..866fc0f --- /dev/null +++ b/src/advancedsettingsdialog.cpp @@ -0,0 +1,219 @@ +/*************************************************************************** +* 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 <qcheckbox.h> +#include <klineedit.h> +#include <kcombobox.h> +#include <qspinbox.h> +#include <qpushbutton.h> +#include <qgroupbox.h> +#include <klocale.h> +#include "advancedsettingsdialog.h" +#include "toolinfo.h" +#include <iostream> +//END includes + +AdvancedSettingsDialog::AdvancedSettingsDialog(QWidget *parent, const QString& 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, SIGNAL(toggled(bool)),this, SLOT(advancedSettingsToggled(bool))); + connect (main->ApplicationVersionCheckbox, SIGNAL(toggled(bool)),this, SLOT(applicationVersionToggled(bool))); + connect (main->PerfectForwardSecurityCheckbox, SIGNAL(toggled(bool)),this, SLOT(perfectForwardSecurityToggled(bool))); + connect (main->IkeGroupCheckbox, SIGNAL(toggled(bool)),this, SLOT(IkeGroupToggled(bool))); + connect (main->SingleDesCheckbox, SIGNAL(toggled(bool)),this, 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 ); + + QString 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() ); + + QDialog::accept(); +} + +#include "advancedsettingsdialog.moc" |