diff options
author | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-02-17 01:04:17 +0000 |
---|---|---|
committer | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-02-17 01:04:17 +0000 |
commit | c3b707c026782768bd8c0e6ae6b574fe8a36802d (patch) | |
tree | 5ca6782031b1546c788290cc0b95524369ff01ea /kmyfirewall/kmfwidgets/kmfnetworkwidget.cpp | |
download | kmyfirewall-c3b707c026782768bd8c0e6ae6b574fe8a36802d.tar.gz kmyfirewall-c3b707c026782768bd8c0e6ae6b574fe8a36802d.zip |
Added old abandoned KDE3 version of kmyfirewall
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/kmyfirewall@1091559 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kmyfirewall/kmfwidgets/kmfnetworkwidget.cpp')
-rw-r--r-- | kmyfirewall/kmfwidgets/kmfnetworkwidget.cpp | 180 |
1 files changed, 180 insertions, 0 deletions
diff --git a/kmyfirewall/kmfwidgets/kmfnetworkwidget.cpp b/kmyfirewall/kmfwidgets/kmfnetworkwidget.cpp new file mode 100644 index 0000000..627d48f --- /dev/null +++ b/kmyfirewall/kmfwidgets/kmfnetworkwidget.cpp @@ -0,0 +1,180 @@ +// +// C++ Implementation: kmfnetworkwidget +// +// Description: +// +// +// Author: Christian Hubinger <chubinger@irrsinnig.org>, (C) 2004 +// +// Copyright: See COPYING file that comes with this distribution +// +// +#include "kmfnetworkwidget.h" + +// QT includes +#include <qlabel.h> +#include <qtextedit.h> +#include <qevent.h> + +// KDE includes +#include <kdebug.h> +#include <knuminput.h> +#include <klocale.h> + +// project includes +#include "../core/kmfundoengine.h" + + +namespace KMF { +KMFNetworkWidget::KMFNetworkWidget(QWidget *parent, const char *name) + : KMyFirewallNetworkWidget(parent, name) { + m_allowEdit = true; + connect( m_sb_from_1,SIGNAL( valueChanged( const QString& ) ), + this,SLOT( slotAddressChanged( const QString& ) ) ); + connect( m_sb_from_2,SIGNAL( valueChanged( const QString& ) ), + this,SLOT( slotAddressChanged( const QString& ) ) ); + connect( m_sb_from_3,SIGNAL( valueChanged( const QString& ) ), + this,SLOT( slotAddressChanged( const QString& ) ) ); + connect( m_sb_from_4,SIGNAL( valueChanged( const QString& ) ), + this,SLOT( slotAddressChanged( const QString& ) ) ); + + connect( m_sb_mask,SIGNAL( valueChanged( int ) ), + this,SLOT( slotShortMaskChanged( int ) ) ); + + connect( m_txt_desc,SIGNAL( textChanged() ), + this,SLOT( slotDescriptionChanged() ) ); + +} + + +KMFNetworkWidget::~KMFNetworkWidget() {} + +void KMFNetworkWidget::slotZoneDeleted() { + setEnabled( false ); +} + +void KMFNetworkWidget::loadZone( KMFNetZone* zone ) { + setEnabled( true ); + blockAllSignals( true ); + m_zone = zone; + connect( m_zone, SIGNAL( destroyed() ), this, SLOT ( slotZoneDeleted() ) ); + + m_sb_from_1->setEnabled( true ); + m_sb_from_2->setEnabled( true ); + m_sb_from_3->setEnabled( true ); + m_sb_from_4->setEnabled( true ); + m_sb_mask->setEnabled( true ); + + m_sb_from_1->setValue( zone->address()->getDigit( 0 ) ); + m_sb_from_2->setValue( zone->address()->getDigit( 1 ) ); + m_sb_from_3->setValue( zone->address()->getDigit( 2 ) ); + m_sb_from_4->setValue( zone->address()->getDigit( 3 ) ); + + lbl_mask->setText( zone->mask()->toString() ); + if ( zone->description() != m_txt_desc->text().simplifyWhiteSpace() ) { + m_txt_desc->setText( zone->description() ); + } + m_sb_mask->setValue( IPAddress::calcLenthToMask( *zone->mask() ) ); + blockAllSignals( false ); +} + +void KMFNetworkWidget::slotAddressChanged( const QString& ) { + kdDebug() << "void KMFNetworkWidget::slotAddressChanged( const QString& )" << endl; + if ( ! m_zone ) { + return; + } + + blockAllSignals( true ); + if ( m_allowEdit ) { + + const QString& newAddr = m_sb_from_1->text() +"."+ + m_sb_from_2->text() +"."+ + m_sb_from_3->text() +"."+ + m_sb_from_4->text(); + + if ( newAddr == m_zone->address()->toString() ) { + return; + } + KMFUndoEngine::instance()->startTransaction( + m_zone->rootZone(), + i18n( "Change address of Zone: %1" ).arg( m_zone->guiName() ) + ); + + m_zone->address()->setAddress( m_sb_from_1->value(), m_sb_from_2->value(), m_sb_from_3->value(), m_sb_from_4->value() ); + m_zone->rootZone()->refreshNetworkTree(); + KMFUndoEngine::instance()->endTransaction(); + emit sigZoneChanged( m_zone ); + } + blockAllSignals( false ); + +} + +void KMFNetworkWidget::slotShortMaskChanged( int len ) { + kdDebug() << "void KMFNetworkWidget::slotShortMaskChanged( const QString& )" << endl; + IPAddress addr = IPAddress::calcNetworkMaskFromLength( len ); + blockAllSignals( true ); + lbl_mask->setText( addr.toString() ); + if ( m_allowEdit && m_zone->maskLength() != len ) { + KMFUndoEngine::instance()->startTransaction( + m_zone->rootZone(), + i18n( "Change mask length of Zone: %1" ).arg( m_zone->guiName() ) + ); + m_zone->setMaskLength( len ); + m_zone->rootZone()->refreshNetworkTree(); + KMFUndoEngine::instance()->endTransaction(); + emit sigZoneChanged( m_zone ); + } + blockAllSignals( false ); +} + +void KMFNetworkWidget::slotDescriptionChanged() { + kdDebug() << "void KMFNetworkWidget::slotDescriptionChanged( const QString& )" << endl; + if ( ! m_zone ) { + return; + } + QString newTxt = m_txt_desc->text().simplifyWhiteSpace(); + if ( m_allowEdit && newTxt != m_zone->description() ) { + blockAllSignals( true ); + KMFUndoEngine::instance()->startTransaction( + m_zone, + i18n( "Change documentation of Zone: %1" ).arg( m_zone->guiName() ) + ); + m_zone->setDescription( newTxt ); + KMFUndoEngine::instance()->endTransaction(); + emit sigZoneChanged( m_zone ); + blockAllSignals( false ); + } +} + +void KMFNetworkWidget::focusOutEvent( QFocusEvent * e ) { + kdDebug() << "void KMFNetworkWidget::focusOutEvent( QFocusEvent * e )" << endl; + if ( e->lostFocus() && m_txt_desc->text().simplifyWhiteSpace() != m_zone->description() ) { + slotDescriptionChanged(); + } +} + +void KMFNetworkWidget::blockAllSignals( bool onOff ) { + m_sb_from_1->blockSignals( onOff ); + m_sb_from_2->blockSignals( onOff ); + m_sb_from_3->blockSignals( onOff ); + m_sb_from_4->blockSignals( onOff ); + m_txt_desc->blockSignals( onOff ); + m_sb_mask->blockSignals( onOff ); +} + +void KMFNetworkWidget::allowEdit( bool allow ) { + m_allowEdit = allow; + m_sb_from_1->setEnabled( allow ); + m_sb_from_2->setEnabled( allow ); + m_sb_from_3->setEnabled( allow ); + m_sb_from_4->setEnabled( allow ); + m_txt_desc->setEnabled( allow ); + m_sb_mask->setEnabled( allow ); +} + +} + + + + +#include "kmfnetworkwidget.moc" |