Diffstat (limited to 'noncore/settings/networksettings2/opietooth2/Opietooth.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/settings/networksettings2/opietooth2/Opietooth.cpp | 46 |
1 files changed, 31 insertions, 15 deletions
diff --git a/noncore/settings/networksettings2/opietooth2/Opietooth.cpp b/noncore/settings/networksettings2/opietooth2/Opietooth.cpp index 5a890da..b14cc2f 100644 --- a/noncore/settings/networksettings2/opietooth2/Opietooth.cpp +++ b/noncore/settings/networksettings2/opietooth2/Opietooth.cpp @@ -1,48 +1,50 @@ #include <opie2/odebug.h> #include <opie2/oledbox.h> #include <opie2/ofiledialog.h> using namespace Opie::Core; using namespace Opie::Ui; #include <qpe/resource.h> #include <qapplication.h> #include <qcheckbox.h> #include <qcombobox.h> #include <qdialog.h> #include <qdir.h> #include <qfile.h> #include <qgroupbox.h> #include <qheader.h> #include <qlabel.h> #include <qlayout.h> #include <qlistbox.h> #include <qlistview.h> #include <qmessagebox.h> #include <qprogressbar.h> #include <qpushbutton.h> +#include <qscrollbar.h> #include <qtextstream.h> +#include <qtextview.h> #include <Opietooth.h> #include <OTDriver.h> #include <OTPeer.h> #include <OTGateway.h> #include <OTSDPAttribute.h> #include <OTSDPService.h> #include <OTInquiry.h> #include <system.h> using namespace Opietooth2; namespace Opietooth2 { class PeerLVI : public QListViewItem { public : PeerLVI( OTPeer * P, QListView * it ) : QListViewItem (it) { Peer = P; } ~PeerLVI( void ) { } @@ -99,106 +101,118 @@ public : LinkKey = Ch; } ~LinkKeyLVI( void ) { } inline int index( void ) { return LinkKey; } private : int LinkKey; }; }; // // // // // OTSniffing::OTSniffing( QWidget * parent ) : OTSniffGUI( parent ) { OT = OTGateway::getOTGateway(); HciDump = 0; - Sys = new System(); } OTSniffing::~OTSniffing() { - printf( "CLOSE \n" ); - if ( HciDump ) { - HciDump->process().kill(); - delete HciDump; - } - delete Sys; + SLOT_Trace( 0 ); } -void OTSniffing::SLOT_Trace( bool ) { +void OTSniffing::SLOT_Trace( bool Run ) { + + if( ! Run ) { + if ( HciDump ) { + HciDump->process().kill(); + delete HciDump; + } + HciDump = 0; + return; + } + HciDump = new MyProcess(); QStringList SL; - SL << "hcidump"; + SL << "/usr/sbin/hcidump"; switch( DataFormat_CB->currentItem() ) { case 0 : // Hex SL << "-x"; break; case 1 : // Ascii SL << "-a"; break; case 2 : // both SL << "-X"; break; } SL << "-i"; SL << OT->scanWith()->devname(); connect( HciDump, SIGNAL( stdoutLine( const QString & ) ), this, SLOT( SLOT_Show( const QString & ) ) ); connect( HciDump, SIGNAL(processExited(MyProcess*) ), this, SLOT( SLOT_ProcessExited(MyProcess*) ) ); - if( ! Sys->runAsRoot( SL, HciDump ) ) { + HciDump->process() << SL; + + if( ! HciDump->process().start( OProcess::DontCare, + OProcess::AllOutput ) + ) { QMessageBox::warning(0, tr("Run hcidump"), tr("Cannot start %1").arg(SL.join(" ")) ); delete HciDump; HciDump = 0; } } void OTSniffing::SLOT_Show( const QString & S ) { printf( "%s\n", S.latin1() ); - Output_LB->insertItem( S ); - Output_LB->setCurrentItem( Output_LB->count()-1 ); - Output_LB->ensureCurrentVisible(); + Output_TV->setText( Output_TV->text() + S + "\n" ); + + QScrollBar *scroll = Output_TV->verticalScrollBar(); + scroll->setValue(scroll->maxValue()); + //Output_LB->insertItem( S ); + //Output_LB->setCurrentItem( Output_LB->count()-1 ); + //Output_LB->ensureCurrentVisible(); } void OTSniffing::SLOT_ProcessExited( MyProcess * ) { printf( "Exited\n" ); delete HciDump; HciDump = 0; } void OTSniffing::SLOT_Save( void ) { QString S = OFileDialog::getSaveFileName( OFileSelector::Extended, QDir::home().path(), QString::null, MimeTypes(), this ); if( ! S.isEmpty() ) { QFile F( S ); if( ! F.open( IO_WriteOnly ) ) { QMessageBox::warning(0, tr("Save log"), tr("Cannot open %1").arg(S) ); return; @@ -207,54 +221,56 @@ void OTSniffing::SLOT_Save( void ) { TS << S << endl; } } void OTSniffing::SLOT_Load( void ) { QString S = OFileDialog::getOpenFileName( OFileSelector::Extended, QDir::home().path(), QString::null, MimeTypes(), this ); if( ! S.isEmpty() ) { QFile F( S ); if( ! F.open( IO_ReadOnly ) ) { QMessageBox::warning(0, tr("Save log"), tr("Cannot open %1").arg(S) ); return; } QTextStream TS ( &F ); SLOT_ClearLog(); S = TS.read(); - Output_LB->insertStringList( QStringList::split( "\n", S ) ); + // Output_LB->insertStringList( QStringList::split( "\n", S ) ); + Output_TV->setText( S ); } } void OTSniffing::SLOT_ClearLog( void ) { - Output_LB->clear(); + // Output_LB->clear(); + Output_TV->setText( "" ); } // // // // // OTPairing::OTPairing( QWidget * parent, OTIcons * _IC ) : OTPairingGUI( parent ) { OT = OTGateway::getOTGateway(); Icons = (_IC ) ? _IC : new OTIcons(); MyIcons = (_IC == 0 ); // unpairing can only be done if bluetooth is disabled Unpair_But->setEnabled( ! OT->isEnabled() ); if( ! OT->isEnabled() ) { Unpair_LBL->hide(); } else { Unpair_LBL->show(); } // open linkkey file and load pairs |