You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kmyfirewall/kmyfirewall/kmfwidgets/kmfiptdocoptions.cpp

89 lines
3.3 KiB

/***************************************************************************
begin : Wed Aug 21 2002
copyright : (C) 2002 by Christian Hubinger
email : chubinger@irrsinnig.org.orphi.iki
***************************************************************************/
/***************************************************************************
* *
* 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. *
* *
***************************************************************************/
#include "kmfiptdocoptions.h"
// TQt includes
#include <tqcheckbox.h>
// kde includes
#include <kdebug.h>
#include <tdeapplication.h>
#include <tdemessagebox.h>
#include <tdelocale.h>
// project includes
#include "../core/kmfdoc.h"
#include "../core/kmfiptdoc.h"
#include "../core/kmfundoengine.h"
#include "../core/kmfnetwork.h"
#include "../core/kmftarget.h"
namespace KMF {
KMFIPTDocOptions::KMFIPTDocOptions( TQWidget *parent, const char *name ) : KMyFirewallIPTDocOptions( parent, name ) {}
KMFIPTDocOptions::~KMFIPTDocOptions() {}
void KMFIPTDocOptions::loadDoc( KMFIPTDoc* doc ) {
kdDebug() << "void KMFIPTDocOptions::loadDoc(KMFIPTDoc* doc)" << endl;
kmfdoc = doc;
c_use_filter->setChecked( kmfdoc->useFilter() );
c_use_nat->setChecked( kmfdoc->useNat() );
c_use_mangle->setChecked( kmfdoc->useMangle() );
c_use_ipfwd->setChecked( kmfdoc->useIPFwd() );
c_use_rp_filter->setChecked( kmfdoc->useRPFilter() );
c_use_martians->setChecked( kmfdoc->useMartians() );
c_use_syn_cookies->setChecked( kmfdoc->useSynCookies() );
c_use_modules->setChecked( kmfdoc->useModules() );
}
void KMFIPTDocOptions::accept() {
if ( ! c_use_filter->isChecked() && ! c_use_nat->isChecked() && ! c_use_mangle->isChecked() ) {
KMessageBox::sorry(this, i18n("<p>Sorry, you need to use at least one of the three tables -- <b> filter, nat</b> or <b>mangle</b>:<br>it does not make any sense to work on a ruleset where you cannot add any rules.</p>") );
return;
}
KMFUndoEngine::instance()->startTransaction(
kmfdoc,
i18n( "Edit document settings for target: %1.").arg( kmfdoc->target()->guiName() )
);
kmfdoc->setUseFilter( c_use_filter->isChecked() );
kmfdoc->setUseNat( c_use_nat->isChecked() );
kmfdoc->setUseMangle( c_use_mangle->isChecked() );
kmfdoc->setUseIPFwd( c_use_ipfwd->isChecked() );
if ( c_use_rp_filter->isChecked() ) {
kmfdoc->setUseRPFilter( true );
kmfdoc->setUseMartians( c_use_martians->isChecked() );
} else {
kmfdoc->setUseRPFilter( false );
kmfdoc->setUseMartians( false );
}
kmfdoc->setUseSynCookies( c_use_syn_cookies->isChecked() );
kmfdoc->setUseModules( c_use_modules->isChecked() );
// kmfdoc->network()->changed();
KMFUndoEngine::instance()->endTransaction();
emit sigConfigChanged();
TQDialog::accept();
}
void KMFIPTDocOptions::slotHelp() {
kdDebug() << "void KMFIPTDocOptions::slotHelp() {" << endl;
kapp->invokeHelp();
}
}
#include "kmfiptdocoptions.moc"