summaryrefslogtreecommitdiff
path: root/noncore/net/wellenreiter/gui/packetview.cpp
authormickeyl <mickeyl>2004-05-02 20:08:30 (UTC)
committer mickeyl <mickeyl>2004-05-02 20:08:30 (UTC)
commit109ed5f2a1cdfeb3680c9ec057a1083fcf8fab95 (patch) (side-by-side diff)
treef7484ada7bff7e4f7a91184f6a8e078af6053dca /noncore/net/wellenreiter/gui/packetview.cpp
parent8602449caa5a055bd5f033e3792d0a59a0b41bfa (diff)
downloadopie-109ed5f2a1cdfeb3680c9ec057a1083fcf8fab95.zip
opie-109ed5f2a1cdfeb3680c9ec057a1083fcf8fab95.tar.gz
opie-109ed5f2a1cdfeb3680c9ec057a1083fcf8fab95.tar.bz2
PacketViewer improvements:
- expose buffer size through API - improve packet viewer logic - display time/date of capture + capture length
Diffstat (limited to 'noncore/net/wellenreiter/gui/packetview.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/wellenreiter/gui/packetview.cpp68
1 files changed, 49 insertions, 19 deletions
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
@@ -21,2 +21,3 @@
#include <opie2/olistview.h>
+#include <opie2/oapplication.h>
@@ -40,6 +41,4 @@ PacketView::PacketView( QWidget * parent, const char * name, WFlags 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 );
@@ -51,4 +50,5 @@ 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 ) );
@@ -57,16 +57,33 @@ PacketView::PacketView( QWidget * parent, const char * name, WFlags f )
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 )
{
- _packets.append( p );
- // Add Circular Buffer and check for number of elements here
+ 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 );
+ }
+
+ _number->setMinValue( 1 );
+ _number->setMaxValue( _packets.count() );
+ _number->setValue( _packets.count() );
}
@@ -77,4 +94,4 @@ void PacketView::showPacket( int number )
_hex->setText("");
- const OPacket* p = _packets.at( number );
-
+ const OPacket* p = _packets.at( number-1 );
+
if ( p )
@@ -83,2 +100,4 @@ void PacketView::showPacket( int number )
_doHexPacket( p );
+ QDateTime dt; dt.setTime_t( p->timeval().tv_sec );
+ _label->setText( dt.toString() + QString().sprintf( " Len=%d", p->len() ) );
}
@@ -86,3 +105,11 @@ void PacketView::showPacket( int number )
{
- odebug << "D'oh! No packet!" << oendl;
+ odebug << "D'oh! No packet!" << oendl;
+ }
+}
+
+void PacketView::activated( QWidget* w )
+{
+ if ( ( this == w ) && _packets.count() )
+ {
+ _number->setValue( 1 );
}
@@ -100,7 +127,10 @@ void PacketView::_doSubPackets( QObjectList* l, int counter )
}
-}
+}
void PacketView::_doHexPacket( const OPacket* p )
-{
- _hex->setText( p->dump( 16 ) );
+{
+ if ( oApp->desktop()->width() > 320 )
+ _hex->setText( p->dump( 16 ) );
+ else
+ _hex->setText( p->dump( 8 ) );
}
@@ -118,3 +148,3 @@ void PacketView::clear()
_list->clear();
- _hex->setText( " <i>-- no Packet available --</i> " );
+ _hex->setText( " <center><i>-- no Packet available --</i></center> " );
}