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/kmfselectactivetarget.cpp

191 lines
4.9 KiB

//
// C++ Implementation:
//
// Description:
//
//
// Author: Christian Hubinger <e9806056@student.tuwien.ac.at>, (C) 2007
//
// Copyright: See COPYING file that comes with this distribution
//
//
#include "kmfselectactivetarget.h"
// TQt includes
#include <tqstring.h>
#include <tqcheckbox.h>
#include <tqfile.h>
#include <tqdir.h>
#include <tqdom.h>
#include <tqstring.h>
#include <tqstringlist.h>
#include <tqlistview.h>
#include <tqradiobutton.h>
#include <tqpushbutton.h>
#include <tqlineedit.h>
#include <tqtextedit.h>
#include <tqlabel.h>
#include <tqbuttongroup.h>
#include <tqgroupbox.h>
#include <tqspinbox.h>
// KDE includes
#include <tdelocale.h>
#include <kdebug.h>
#include <kstandarddirs.h>
#include <tdelocale.h>
#include <tdeio/netaccess.h>
#include <tdeio/job.h>
#include <ktrader.h>
#include <klibloader.h>
#include <tdelistview.h>
#include <tdelistbox.h>
#include <knuminput.h>
#include <kpushbutton.h>
#include <tdemessagebox.h>
#include <tdetempfile.h>
// Project includes
#include "kmflistviewitem.h"
#include "../version.h"
#include "../core/kmfnetwork.h"
#include "../core/kmfdoc.h"
#include "../core/kmftarget.h"
//##### static stuff
namespace KMF {
KMFTarget * KMFSelectActiveTarget::selectTarget( KMFNetwork* network, const TQString& msg ) {
kdDebug() << "KMFTarget * KMFSelectActiveTarget::selectTarget( KMFNetwork* network, const TQString& " << msg << " )" << endl;
TQPtrList<KMFTarget> *list = new TQPtrList<KMFTarget>;
network->netzone()->getAllTargets( network->netzone(), list );
if ( list->count() == 1 ) {
return network->currentTarget();
}
KMFSelectActiveTarget *selTG = new KMFSelectActiveTarget( 0, "KMFSelectActiveTarget",
TQWidget::WType_Dialog | TQWidget::WShowModal
);
selTG->setMessage( msg );
selTG->loadNetwork( network );
selTG->exec();
KMFTarget *tg = selTG->selectedTarget();
if ( tg ) {
kdDebug() << "Selected Target: " << tg->guiName() << endl;
return tg;
}
return 0;
}
//##### end static
KMFSelectActiveTarget::KMFSelectActiveTarget ( TQWidget* parent, const char* name, bool modal, WFlags fl )
: KMyFirewallSelectActiveTarget ( parent,name,modal,fl )
{
m_cmd_ok->setEnabled( false );
connect( m_lv_zones, TQ_SIGNAL( pressed( TQListViewItem* ) ) ,
this, TQ_SLOT( slotNewItemSelected( TQListViewItem* ) ) );
connect( m_lv_zones, TQ_SIGNAL( doubleClicked ( TQListViewItem *, const TQPoint &, int ) ) ,
this, TQ_SLOT( slotNewItemDBLClicked( TQListViewItem*, const TQPoint &, int ) ) );
connect( m_cmd_cancel, TQ_SIGNAL( clicked() ) ,
this, TQ_SLOT( slotCancel() ) );
connect( m_cmd_ok, TQ_SIGNAL( clicked() ) ,
this, TQ_SLOT( slotOk() ) );
adjustSize();
}
KMFSelectActiveTarget::~KMFSelectActiveTarget()
{}
/*$SPECIALIZATION$*/
void KMFSelectActiveTarget::loadNetwork( KMFNetwork* net ) {
kdDebug() << "KMFSelectActiveTarget::loadNetwork( KMFNetwork* )" << endl;
if ( ! net ) {
return;
}
m_network = net;
m_lv_zones->clear();
KMFListViewItem *it = new KMFListViewItem( m_lv_zones, 0, m_network->netzone() );
it->setupZoneView();
}
void KMFSelectActiveTarget::setMessage( const TQString& msg ) {
kdDebug() << "KMFSelectActiveTarget::setMessage( const TQString& )" << endl;
m_lbl_message->setText( msg );
}
void KMFSelectActiveTarget::slotTargetSelected() {
kdDebug() << "KMFSelectActiveTarget::slotTargetSelected()" << endl;
}
void KMFSelectActiveTarget::slotNewItemDBLClicked( TQListViewItem* item, const TQPoint &, int ) {
slotNewItemSelected( item );
if ( m_target ) {
slotOk();
}
}
void KMFSelectActiveTarget::slotNewItemSelected( TQListViewItem* item ) {
kdDebug() << "void KMFMyNetworkWidget::slotNewItemSelected( TQListViewItem* item )" << endl;
if ( ! item )
return ;
m_target = 0;
m_lv_zones->blockSignals( true );
m_lv_zones->clearSelection();
m_lv_zones->setSelected( item, true );
m_lv_zones->blockSignals( false );
m_cmd_ok->setEnabled( false );
KMFListViewItem* kmfitem = dynamic_cast<KMFListViewItem*> ( item );
if ( ! kmfitem ) {
kdDebug() << "No Item Selected!" << endl;
return;
}
if ( kmfitem != 0 && kmfitem->netfilterObject()->type() == NetfilterObject::KMFTARGET ) {
m_target = kmfitem->target();
m_lbl_currentTarget->setText( m_target->guiName() );
kdDebug() << "Selected Target: " << m_target->guiName() << endl;
m_cmd_ok->setEnabled( true );
} else {
m_lbl_currentTarget->setText( i18n( "No Target Selected" ) );
kdDebug() << "No Target Selected" << endl;
m_cmd_ok->setEnabled( false );
}
kdDebug() << "Laving slotNewItemSelected()" << endl;
}
void KMFSelectActiveTarget::slotCancel() {
kdDebug() << "KMFSelectActiveTarget::slotCancel()" << endl;
m_target = 0;
TQDialog::reject();
}
void KMFSelectActiveTarget::slotOk() {
kdDebug() << "KMFSelectActiveTarget::slotOk()" << endl;
TQDialog::accept();
}
KMFTarget *KMFSelectActiveTarget::selectedTarget() {
kdDebug() << "KMFSelectActiveTarget::slectedTarget()" << endl;
return m_target;
}
}
#include "kmfselectactivetarget.moc"