/*************************************************************************** * 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. * ***************************************************************************/ #ifndef PREFERENCESDIALOG_H #define PREFERENCESDIALOG_H #include #include #include #include #include #include #include "vpnaccountdata.h" // content #include "configdebugoptions.h" #include "configgeneraloptions.h" #include "configconnectoptions.h" #include "configlogoptions.h" #include "configdaemonoptions.h" #include "confighelperprogramoptions.h" #include "profilecertoptions.h" #include "profilesmartcardoptions.h" #include "profilepskoptions.h" #include "profileciscooptions.h" #include "profilecmdexecafterconnectoptions.h" #include "profilecmdexecafterdisconnectoptions.h" #include "profilecmdexecbeforeconnectoptions.h" #include "profilecmdexecbeforedisconnectoptions.h" #include "profilegeneraloptions.h" #include "profilenetworkgeneraloptions.h" #include "profilenetworknatoptions.h" #include "profilenetworkhttpproxyoptions.h" #include "profilenetworkrouteoptions.h" #include "profilenetworkvirtualipoptions.h" #include "profileopenvpnoptions.h" #include "profilepptpoptions.h" #include "profileracoonoptions.h" #include "profileipsecoptions.h" #include "profilevtunoptions.h" #include "profilesshoptions.h" #include "profileuseroptions.h" /** @author Christoph Thielecke */ class PreferencesDialog : public KDialogBase { TQ_OBJECT public: /** * Constructor * @param parent parent widget * @param app pointer to main application * @param LogOutput textedit for debug messages * @param GlobalConfig pointer to configuration object * @param showOnlyProfiles view mode. true: show as profile manager, false: show as preferences dialog * @return */ PreferencesDialog( TQWidget *parent, TQApplication *app,TQTextEdit *LogOutput, KVpncConfig *GlobalConfig, bool showOnlyProfiles); ~PreferencesDialog(); public slots: void accept(); void reject(); void slotApply(); void authTypeChanged( int authtype ); void connectionTypeChanged( int connectiontype ); void profileChanged( const TQString& itemtext ); void saveSessionClicked(); void deleteSessionClicked(); void renameSessionClicked(); void newSessionClicked(); void importCertificate(); void pageChanged(TQWidget *); void userAuthToggled(bool); void useUdpToggled(bool); void useSpecialServerSmartcardificateToggled(bool); void applicationVersionToggled(bool); void IkeGroupToggled(bool); void perfectForwardSecurityToggled(bool); void singleDesToggled(bool); void useTDEwalletToggled(bool); void dpdToggled(bool); void useCiscoCertStoreToggled(bool); void natModeToggled( const TQString &); void slotProfileCreated(TQString Name); private slots: void OpenvpnPathChanged(const TQString&); void FreeswanPathChanged(const TQString&); void PppdPathChanged(const TQString&); void PptpPathChanged(const TQString&); void RacoonPathChanged(const TQString&); void VpncPathChanged(const TQString&); void CiscoVpncPathChanged(const TQString&); void L2tpdPathChanged(const TQString&); void Xl2tpdPathChanged(const TQString&); void Openl2tpPathChanged(const TQString&); void VtundPathChanged(const TQString&); void SshPathChanged(const TQString&); void showEvent(TQShowEvent* e); void detectPkcs11Ids(); void detectPkcs11Slots(); void localPortToggled(bool); void tunnelDeviceTypeChanged(const TQString &); void useXauthToggled(bool); void slotStatusMsg ( const TQString &text, int id ); bool getVpncHasHybridSupport(); protected: void setupGui(); TQPtrList *AccountList; TQTextEdit *LogOutput; VpnAccountData *currentProfile; KVpncConfig *GlobalConfig; TQString lastProfileName; int KvpncDebugLevel; bool canAccept; bool configChanged; TQPixmap ok_icon; TQPixmap wrong_icon; TQScrollView* DaemonScrollView; TQStringList CiscoCerts; TQStringList CiscoCaCerts; private: TQWidget *prev_page; TQWidget *current_page; public: TQApplication *app; /* -- option pages -- */ // Kvpnc ConfigGeneralOptions *GeneralOptionsWidget; ConfigDebugOptions *DebugOptionsWidget; ConfigConnectOptions *ConnectOptionsWidget; ConfigLogOptions *LogOptionsWidget; // programs ConfigDaemonOptions *ConfigDaemonOptionsWidget; ConfigHelperProgramOptions *HelperProgramOptionsWidget; // profile ProfileGeneralOptions *ProfileGeneralOptionsWidget; ProfileNetworkRouteOptions *ProfileNetworkRouteOptionsWidget; ProfileNetworkGeneralOptions *ProfileNetworkGeneralOptionsWidget; ProfileNetworkNatOptions *ProfileNetworkNatOptionsWidget; ProfileNetworkVirtualIpOptions *ProfileNetworkVirtualIpOptionsWidget; ProfileCertOptions *ProfileCertOptionsWidget; ProfileSmartcardOptions *ProfileSmartcardOptionsWidget; ProfilePskOptions *ProfilePskOptionsWidget; ProfileUserOptions *ProfileUserOptionsWidget; ProfileOpenvpnOptions *ProfileOpenvpnOptionsWidget; ProfileNetworkHttpProxyOptions *ProfileNetworkHttpProxyOptionsWidget; ProfilePptpOptions *ProfilePptpOptionsWidget; ProfileRacoonOptions *ProfileRacoonOptionsWidget; ProfileIpsecOptions *ProfileIpsecOptionsWidget; ProfileCiscoOptions *ProfileCiscoOptionsWidget; ProfileVtunOptions *ProfileVtunOptionsWidget; ProfileSshOptions *ProfileSshOptionsWidget; ProfileCmdExecBeforeConnectOptions *ProfileCmdExecBeforeConnectOptionsWidget; ProfileCmdExecBeforeDisconnectOptions *ProfileCmdExecBeforeDisconnectOptionsWidget; ProfileCmdExecAfterConnectOptions *ProfileCmdExecAfterConnectOptionsWidget; ProfileCmdExecAfterDisconnectOptions *ProfileCmdExecAfterDisconnectOptionsWidget; TQFrame* ProfileNetworkRouteOptionsFrame; TQFrame* ConfigConnectOptionsFrame; TQFrame* DaemonOptionsFrame; TQFrame* DebugFrame; TQFrame* LogFrame; TQFrame* HelperProgramFrame; TQFrame* ProfileGeneralOptionsFrame; TQFrame* ProfileUserOptionsFrame; TQFrame* ProfileCertOptionsFrame; TQFrame* ProfileCiscoOptionsFrame; TQFrame* ProfileNetworkHttpProxyOptionsFrame; TQFrame* ProfileCmdExecAfterConnectOptionsFrame; TQFrame* ProfileCmdExecBeforeDisconnectOptionsFrame; TQFrame* ProfileCmdExecAfterDisconnectOptionsFrame; TQFrame* ProfileCmdExecBeforeConnectOptionsFrame; TQFrame* GeneralFrame; TQFrame* ProfileSmartcardOptionsFrame; TQFrame* ProfilePskOptionsFrame; TQFrame* ProfileNetworkGeneralOptionsFrame; TQFrame* ProfileNetworkNatOptionsFrame; TQFrame* ProfileNetworkVirtualIpOptionsFrame; TQFrame* ProfileRacoonOptionsFrame; TQFrame* ProfileIpsecOptionsFrame; TQFrame* ProfileOpenvpnOptionsFrame; TQFrame* ProfilePptpOptionsFrame; TQFrame* ProfileVtunOptionsFrame; TQFrame* ProfileSshOptionsFrame; TQComboBox *ProfileGeneralSelector; TQComboBox *ProfileNetworkRouteSelector; TQComboBox *ProfileNetworkGeneralSelector; TQComboBox *ProfileNetworkNatSelector; TQComboBox *ProfileNetworkVirtualIpSelector; TQComboBox *ProfileCertSelector; TQComboBox *ProfileSmartcardSelector; TQComboBox *ProfilePskSelector; TQComboBox *ProfileUserSelector; TQComboBox *ProfileOpenvpnSelector; TQComboBox *ProfileNetworkHttpProxySelector; TQComboBox *ProfilePptpSelector; TQComboBox *ProfileRacoonSelector; TQComboBox *ProfileIpsecSelector; TQComboBox *ProfileCiscoSelector; TQComboBox *ProfileVtunSelector; TQComboBox *ProfileSshSelector; TQComboBox *ProfileCmdExecBeforeConnectSelector; TQComboBox *ProfileCmdExecBeforeDisconnectSelector; TQComboBox *ProfileCmdExecAfterConnectSelector; TQComboBox *ProfileCmdExecAfterDisconnectSelector; bool profileAddedOrDeleted; bool profileHasChanged; bool showOnlyProfiles; TQString NewProfileName; }; #endif