summaryrefslogtreecommitdiffstats
path: root/kmyfirewall/kmfwidgets/kmfnetworkwidget.cpp
diff options
context:
space:
mode:
authortpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-02-17 01:04:17 +0000
committertpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-02-17 01:04:17 +0000
commitc3b707c026782768bd8c0e6ae6b574fe8a36802d (patch)
tree5ca6782031b1546c788290cc0b95524369ff01ea /kmyfirewall/kmfwidgets/kmfnetworkwidget.cpp
downloadkmyfirewall-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.cpp180
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"