summaryrefslogtreecommitdiff
authormickeyl <mickeyl>2004-05-02 20:08:30 (UTC)
committer mickeyl <mickeyl>2004-05-02 20:08:30 (UTC)
commit109ed5f2a1cdfeb3680c9ec057a1083fcf8fab95 (patch) (unidiff)
treef7484ada7bff7e4f7a91184f6a8e078af6053dca
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 (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/wellenreiter/gui/configwindow.cpp27
-rw-r--r--noncore/net/wellenreiter/gui/configwindow.h2
-rw-r--r--noncore/net/wellenreiter/gui/packetview.cpp68
-rw-r--r--noncore/net/wellenreiter/gui/packetview.h12
-rw-r--r--noncore/net/wellenreiter/gui/wellenreiter.cpp2
5 files changed, 76 insertions, 35 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
@@ -39,5 +39,6 @@ using namespace Opie::Net;
39#include <qpushbutton.h> 39#include <qpushbutton.h>
40#include <qradiobutton.h>
41#include <qspinbox.h>
40#include <qtabwidget.h> 42#include <qtabwidget.h>
41#include <qtoolbutton.h> 43#include <qtoolbutton.h>
42#include <qspinbox.h>
43#include <qtextstream.h> 44#include <qtextstream.h>
@@ -114,3 +115,3 @@ void WellenreiterConfigWindow::performAutodetection()
114 115
115 odebug << "WellenreiterConfigWindow::performAutodetection()" << oendl; 116 odebug << "WellenreiterConfigWindow::performAutodetection()" << oendl;
116 117
@@ -135,3 +136,3 @@ void WellenreiterConfigWindow::performAutodetection()
135 _guess = devicetype; 136 _guess = devicetype;
136 odebug << "Wellenreiter: guessed device type to be #" << devicetype << "" << oendl; 137 odebug << "Wellenreiter: guessed device type to be #" << devicetype << "" << oendl;
137 } 138 }
@@ -239,3 +240,3 @@ void WellenreiterConfigWindow::getCaptureFileNameClicked()
239 QString name = ( (WellenreiterMainWindow*) qApp->mainWidget() )->getFileName(true); 240 QString name = ( (WellenreiterMainWindow*) qApp->mainWidget() )->getFileName(true);
240 odebug << "name = " << name << "" << oendl; 241 odebug << "name = " << name << "" << oendl;
241 if ( !name.isEmpty() ) 242 if ( !name.isEmpty() )
@@ -314,3 +315,3 @@ void WellenreiterConfigWindow::performAction( const QString& type,
314 { 315 {
315 owarn << "WellenreiterConfigWindow::performAction(): unknown type '" << type << "'" << oendl; 316 owarn << "WellenreiterConfigWindow::performAction(): unknown type '" << type << "'" << oendl;
316 return; 317 return;
@@ -318,3 +319,3 @@ void WellenreiterConfigWindow::performAction( const QString& type,
318 319
319 odebug << "for event '" << (const char*) type << "' I'm going to perform action " << action << " (script='" << script << "')" << oendl; 320 odebug << "for event '" << (const char*) type << "' I'm going to perform action " << action << " (script='" << script << "')" << oendl;
320 321
@@ -343,5 +344,5 @@ void WellenreiterConfigWindow::performAction( const QString& type,
343 344
344 odebug << "going to call script '" << script << "'" << oendl; 345 odebug << "going to call script '" << script << "'" << oendl;
345 ::system( script ); 346 ::system( script );
346 odebug << "script returned." << oendl; 347 odebug << "script returned." << oendl;
347 return; 348 return;
@@ -359,3 +360,3 @@ void WellenreiterConfigWindow::load()
359#else 360#else
360 odebug << "loading configuration settings..." << oendl; 361 odebug << "loading configuration settings..." << oendl;
361 362
@@ -437,3 +438,3 @@ void WellenreiterConfigWindow::save()
437#else 438#else
438 odebug << "saving configuration settings..." << oendl; 439 odebug << "saving configuration settings..." << oendl;
439 440
@@ -476 +477,7 @@ void WellenreiterConfigWindow::save()
476} 477}
478
479
480int WellenreiterConfigWindow::hexViewBuffer() const
481{
482 return hexViewBufferUnlimited->isChecked() ? -1 : hexViewBufferSize->value();
483}
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
@@ -60,2 +60,4 @@ class WellenreiterConfigWindow : public WellenreiterConfigBase
60 60
61 int hexViewBuffer() const;
62
61 public slots: 63 public slots:
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 @@
21#include <opie2/olistview.h> 21#include <opie2/olistview.h>
22#include <opie2/oapplication.h>
22 23
@@ -40,6 +41,4 @@ PacketView::PacketView( QWidget * parent, const char * name, WFlags f )
40 _number = new QSpinBox( this ); 41 _number = new QSpinBox( this );
41 _number->setPrefix( "Packet # " ); 42 _number->setPrefix( "Pkt# " );
42 _label = new QLabel( this ); 43 _label = new QLabel( this );
43 _label->setText( "eth0 2004/03/08 - 00:00:21" );
44
45 _list = new OListView( this ); 44 _list = new OListView( this );
@@ -51,4 +50,5 @@ PacketView::PacketView( QWidget * parent, const char * name, WFlags f )
51 _list->setFont( QFont( "Fixed", 8 ) ); 50 _list->setFont( QFont( "Fixed", 8 ) );
52 51
53 _hex = new QTextView( this ); 52 _hex = new QTextView( this );
53 _hex->setMargin( 0 );
54 _hex->setFont( QFont( "Fixed", 8 ) ); 54 _hex->setFont( QFont( "Fixed", 8 ) );
@@ -57,16 +57,33 @@ PacketView::PacketView( QWidget * parent, const char * name, WFlags f )
57 QHBoxLayout* hb = new QHBoxLayout( vb, 2 ); 57 QHBoxLayout* hb = new QHBoxLayout( vb, 2 );
58 hb->addWidget( _label ); 58 hb->addWidget( _label, 5 );
59 hb->addWidget( _number ); 59 hb->addWidget( _number, 2 );
60 vb->addWidget( _list ); 60 vb->addWidget( _list, 3 );
61 vb->addWidget( _hex ); 61 vb->addWidget( _hex, 4 ); // allow a bit (4/3) more space
62 62
63 _packets.setAutoDelete( true ); 63 _packets.setAutoDelete( true );
64 64
65 connect( _number, SIGNAL( valueChanged( int ) ), this, SLOT( showPacket( int ) ) ); 65 connect( _number, SIGNAL( valueChanged( int ) ), this, SLOT( showPacket( int ) ) );
66 connect( parent, SIGNAL( currentChanged( QWidget *) ), this, SLOT( activated( QWidget* ) ) );
67
68 clear();
69
66} 70}
67 71
68void PacketView::add( const OPacket* p ) 72void PacketView::add( const OPacket* p, int size )
69{ 73{
70 _packets.append( p ); 74 odebug << "PacketView::add() size = " << size << oendl;
71 // Add Circular Buffer and check for number of elements here 75 if ( size == -1 ) // unlimited buffer
76 {
77 _packets.append( p );
78 }
79 else
80 // limited buffer, limit = size
81 if ( _packets.count() < size )
82 {
83 _packets.append( p );
84 }
85
86 _number->setMinValue( 1 );
87 _number->setMaxValue( _packets.count() );
88 _number->setValue( _packets.count() );
72} 89}
@@ -77,4 +94,4 @@ void PacketView::showPacket( int number )
77 _hex->setText(""); 94 _hex->setText("");
78 const OPacket* p = _packets.at( number ); 95 const OPacket* p = _packets.at( number-1 );
79 96
80 if ( p ) 97 if ( p )
@@ -83,2 +100,4 @@ void PacketView::showPacket( int number )
83 _doHexPacket( p ); 100 _doHexPacket( p );
101 QDateTime dt; dt.setTime_t( p->timeval().tv_sec );
102 _label->setText( dt.toString() + QString().sprintf( " Len=%d", p->len() ) );
84 } 103 }
@@ -86,3 +105,11 @@ void PacketView::showPacket( int number )
86 { 105 {
87 odebug << "D'oh! No packet!" << oendl; 106 odebug << "D'oh! No packet!" << oendl;
107 }
108}
109
110void PacketView::activated( QWidget* w )
111{
112 if ( ( this == w ) && _packets.count() )
113 {
114 _number->setValue( 1 );
88 } 115 }
@@ -100,7 +127,10 @@ void PacketView::_doSubPackets( QObjectList* l, int counter )
100 } 127 }
101} 128}
102 129
103void PacketView::_doHexPacket( const OPacket* p ) 130void PacketView::_doHexPacket( const OPacket* p )
104{ 131{
105 _hex->setText( p->dump( 16 ) ); 132 if ( oApp->desktop()->width() > 320 )
133 _hex->setText( p->dump( 16 ) );
134 else
135 _hex->setText( p->dump( 8 ) );
106} 136}
@@ -118,3 +148,3 @@ void PacketView::clear()
118 _list->clear(); 148 _list->clear();
119 _hex->setText( " <i>-- no Packet available --</i> " ); 149 _hex->setText( " <center><i>-- no Packet available --</i></center> " );
120} 150}
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
@@ -23,2 +23,3 @@
23 23
24class QWidget;
24class QLabel; 25class QLabel;
@@ -33,4 +34,4 @@ class PacketView: public QFrame
33{ 34{
34 Q_OBJECT 35 Q_OBJECT
35 36
36 public: 37 public:
@@ -38,8 +39,9 @@ class PacketView: public QFrame
38 39
39 void add( const Opie::Net::OPacket* p ); 40 void add( const Opie::Net::OPacket* p, int size );
40 const QString getLog() const; 41 const QString getLog() const;
41 void clear(); 42 void clear();
42 43
43 public slots: 44 public slots:
44 void showPacket( int number ); 45 void showPacket( int number );
46 void activated( QWidget* );
45 47
@@ -51,3 +53,3 @@ class PacketView: public QFrame
51 QList<const Opie::Net::OPacket> _packets; 53 QList<const Opie::Net::OPacket> _packets;
52 54
53 protected: 55 protected:
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
@@ -415,3 +415,3 @@ void Wellenreiter::receivePacket( OPacket* p )
415{ 415{
416 hexWindow()->add( p ); 416 hexWindow()->add( p, configwindow->hexViewBuffer() );
417 417