summaryrefslogtreecommitdiff
path: root/noncore/net
Side-by-side diff
Diffstat (limited to 'noncore/net') (more/less context) (show whitespace changes)
-rw-r--r--noncore/net/wellenreiter/gui/configwindow.cpp9
-rw-r--r--noncore/net/wellenreiter/gui/configwindow.h2
-rw-r--r--noncore/net/wellenreiter/gui/packetview.cpp52
-rw-r--r--noncore/net/wellenreiter/gui/packetview.h4
-rw-r--r--noncore/net/wellenreiter/gui/wellenreiter.cpp2
5 files changed, 55 insertions, 14 deletions
diff --git a/noncore/net/wellenreiter/gui/configwindow.cpp b/noncore/net/wellenreiter/gui/configwindow.cpp
index 279b39c..89ed24c 100644
--- a/noncore/net/wellenreiter/gui/configwindow.cpp
+++ b/noncore/net/wellenreiter/gui/configwindow.cpp
@@ -37,9 +37,10 @@ using namespace Opie::Net;
#include <qlayout.h>
#include <qmap.h>
#include <qpushbutton.h>
+#include <qradiobutton.h>
+#include <qspinbox.h>
#include <qtabwidget.h>
#include <qtoolbutton.h>
-#include <qspinbox.h>
#include <qtextstream.h>
/* STD */
@@ -474,3 +475,9 @@ void WellenreiterConfigWindow::save()
#endif
}
+
+
+int WellenreiterConfigWindow::hexViewBuffer() const
+{
+ return hexViewBufferUnlimited->isChecked() ? -1 : hexViewBufferSize->value();
+}
diff --git a/noncore/net/wellenreiter/gui/configwindow.h b/noncore/net/wellenreiter/gui/configwindow.h
index 0a5b3bd..2d478e7 100644
--- a/noncore/net/wellenreiter/gui/configwindow.h
+++ b/noncore/net/wellenreiter/gui/configwindow.h
@@ -58,6 +58,8 @@ class WellenreiterConfigWindow : public WellenreiterConfigBase
void save();
void load();
+ int hexViewBuffer() const;
+
public slots:
void changedDeviceType(int);
void changedNetworkAction(int t);
diff --git a/noncore/net/wellenreiter/gui/packetview.cpp b/noncore/net/wellenreiter/gui/packetview.cpp
index 4df01da..f0f16ff 100644
--- a/noncore/net/wellenreiter/gui/packetview.cpp
+++ b/noncore/net/wellenreiter/gui/packetview.cpp
@@ -19,6 +19,7 @@
#include <opie2/opcap.h>
#include <opie2/odebug.h>
#include <opie2/olistview.h>
+#include <opie2/oapplication.h>
/* QT */
#include <qfont.h>
@@ -38,10 +39,8 @@ PacketView::PacketView( QWidget * parent, const char * name, WFlags f )
:QFrame( parent, name, f )
{
_number = new QSpinBox( this );
- _number->setPrefix( "Packet # " );
+ _number->setPrefix( "Pkt# " );
_label = new QLabel( this );
- _label->setText( "eth0 2004/03/08 - 00:00:21" );
-
_list = new OListView( this );
_list->addColumn( "#" );
_list->addColumn( "Packet Type" );
@@ -51,36 +50,56 @@ PacketView::PacketView( QWidget * parent, const char * name, WFlags f )
_list->setFont( QFont( "Fixed", 8 ) );
_hex = new QTextView( this );
+ _hex->setMargin( 0 );
_hex->setFont( QFont( "Fixed", 8 ) );
QVBoxLayout* vb = new QVBoxLayout( this, 2, 2 );
QHBoxLayout* hb = new QHBoxLayout( vb, 2 );
- hb->addWidget( _label );
- hb->addWidget( _number );
- vb->addWidget( _list );
- vb->addWidget( _hex );
+ hb->addWidget( _label, 5 );
+ hb->addWidget( _number, 2 );
+ vb->addWidget( _list, 3 );
+ vb->addWidget( _hex, 4 ); // allow a bit (4/3) more space
_packets.setAutoDelete( true );
connect( _number, SIGNAL( valueChanged( int ) ), this, SLOT( showPacket( int ) ) );
+ connect( parent, SIGNAL( currentChanged( QWidget *) ), this, SLOT( activated( QWidget* ) ) );
+
+ clear();
+
}
-void PacketView::add( const OPacket* p )
+void PacketView::add( const OPacket* p, int size )
+{
+ odebug << "PacketView::add() size = " << size << oendl;
+ if ( size == -1 ) // unlimited buffer
+ {
+ _packets.append( p );
+ }
+ else
+ // limited buffer, limit = size
+ if ( _packets.count() < size )
{
_packets.append( p );
- // Add Circular Buffer and check for number of elements here
+ }
+
+ _number->setMinValue( 1 );
+ _number->setMaxValue( _packets.count() );
+ _number->setValue( _packets.count() );
}
void PacketView::showPacket( int number )
{
_list->clear();
_hex->setText("");
- const OPacket* p = _packets.at( number );
+ const OPacket* p = _packets.at( number-1 );
if ( p )
{
_doSubPackets( const_cast<QObjectList*>( p->children() ), 0 );
_doHexPacket( p );
+ QDateTime dt; dt.setTime_t( p->timeval().tv_sec );
+ _label->setText( dt.toString() + QString().sprintf( " Len=%d", p->len() ) );
}
else
{
@@ -88,6 +107,14 @@ void PacketView::showPacket( int number )
}
}
+void PacketView::activated( QWidget* w )
+{
+ if ( ( this == w ) && _packets.count() )
+ {
+ _number->setValue( 1 );
+ }
+}
+
void PacketView::_doSubPackets( QObjectList* l, int counter )
{
if (!l) return;
@@ -102,7 +129,10 @@ void PacketView::_doSubPackets( QObjectList* l, int counter )
void PacketView::_doHexPacket( const OPacket* p )
{
+ if ( oApp->desktop()->width() > 320 )
_hex->setText( p->dump( 16 ) );
+ else
+ _hex->setText( p->dump( 8 ) );
}
const QString PacketView::getLog() const
@@ -116,6 +146,6 @@ void PacketView::clear()
_number->setMaxValue( 0 );
_label->setText( "---" );
_list->clear();
- _hex->setText( " <i>-- no Packet available --</i> " );
+ _hex->setText( " <center><i>-- no Packet available --</i></center> " );
}
diff --git a/noncore/net/wellenreiter/gui/packetview.h b/noncore/net/wellenreiter/gui/packetview.h
index 42e8f5d..bb366c5 100644
--- a/noncore/net/wellenreiter/gui/packetview.h
+++ b/noncore/net/wellenreiter/gui/packetview.h
@@ -21,6 +21,7 @@
#include <opie2/opcap.h>
+class QWidget;
class QLabel;
class QString;
class QSpinBox;
@@ -36,12 +37,13 @@ class PacketView: public QFrame
public:
PacketView( QWidget * parent = 0, const char * name = "PacketView", WFlags f = 0 );
- void add( const Opie::Net::OPacket* p );
+ void add( const Opie::Net::OPacket* p, int size );
const QString getLog() const;
void clear();
public slots:
void showPacket( int number );
+ void activated( QWidget* );
protected:
QSpinBox* _number;
diff --git a/noncore/net/wellenreiter/gui/wellenreiter.cpp b/noncore/net/wellenreiter/gui/wellenreiter.cpp
index 12b3978..fe8f22d 100644
--- a/noncore/net/wellenreiter/gui/wellenreiter.cpp
+++ b/noncore/net/wellenreiter/gui/wellenreiter.cpp
@@ -413,7 +413,7 @@ bool Wellenreiter::checkDumpPacket( OPacket* p )
void Wellenreiter::receivePacket( OPacket* p )
{
- hexWindow()->add( p );
+ hexWindow()->add( p, configwindow->hexViewBuffer() );
if ( checkDumpPacket( p ) )
{