From b06390cb17114692a9fd5233d77620b385252480 Mon Sep 17 00:00:00 2001 From: mickeyl Date: Tue, 24 Aug 2004 11:53:43 +0000 Subject: apply megapatch courtesy Holger 'Zecke' Freyther: - bump version to 1.0.3-cvs - fix compile warnings - fix PacketViewer not to scroll, when watching in "real time" - fix appending text to log view - update statistics when tab is getting activated --- (limited to 'noncore/net/wellenreiter/gui/packetview.cpp') diff --git a/noncore/net/wellenreiter/gui/packetview.cpp b/noncore/net/wellenreiter/gui/packetview.cpp index 69438fa..d71111f 100644 --- a/noncore/net/wellenreiter/gui/packetview.cpp +++ b/noncore/net/wellenreiter/gui/packetview.cpp @@ -71,6 +71,13 @@ PacketView::PacketView( QWidget * parent, const char * name, WFlags f ) void PacketView::add( const OPacket* p, int size ) { + /* + * don't scroll away when somebody views packages + * while scanning + */ + int value = _number->value(); + bool last = (value == static_cast( _packets.count() ) ); + odebug << "PacketView::add() size = " << size << oendl; if ( size == -1 ) // unlimited buffer { @@ -78,16 +85,20 @@ void PacketView::add( const OPacket* p, int size ) } else { // limited buffer, limit = size - while ( _packets.count() >= size ) + while ( _packets.count() >= static_cast( size ) ) { _packets.removeFirst(); + --value; } + + /* check if we lost our packet */ + last = ( value < 1 ); _packets.append( p ); } _number->setMinValue( 1 ); _number->setMaxValue( _packets.count() ); - _number->setValue( _packets.count() ); + _number->setValue( last ? _packets.count() : value ); } void PacketView::showPacket( int number ) @@ -139,6 +150,7 @@ void PacketView::_doHexPacket( const OPacket* p ) const QString PacketView::getLog() const { + return QString::null; } void PacketView::clear() -- cgit v0.9.0.2