-rw-r--r-- | noncore/net/opietooth/blue-pin/main.cc | 3 | ||||
-rw-r--r-- | noncore/net/opietooth/blue-pin/pindlg.cc | 61 | ||||
-rw-r--r-- | noncore/net/opietooth/blue-pin/pindlg.h | 15 |
3 files changed, 77 insertions, 2 deletions
diff --git a/noncore/net/opietooth/blue-pin/main.cc b/noncore/net/opietooth/blue-pin/main.cc index aa360aa..29e46ae 100644 --- a/noncore/net/opietooth/blue-pin/main.cc +++ b/noncore/net/opietooth/blue-pin/main.cc @@ -1,38 +1,41 @@ #include <stdio.h> #include <stdlib.h> #include <qpe/qpeapplication.h> +#include <opie2/oapplicationfactory.h> #include "pindlg.h" +using namespace Opie::Core; +OPIE_EXPORT_APP( OApplicationFactory<OpieTooth::PinDlg> ) int main( int argc, char* argv[] ) { if (argc < 2 ) { printf("ERR\n"); exit(0); } QCString dir(argv[1] ); QCString bdaddr( argv[2] ); QCString name; if ( argc > 3 ) { name = argv[3]; } QPEApplication a(argc, argv ); QString status; if (dir == "out" ) { status = QObject::tr("Outgoing connection to "); }else status = QObject::tr("Incoming connection from "); status += name; status += "<br>"; status += "[" + bdaddr + "]"; OpieTooth::PinDlg dlg( status, bdaddr ); if ( dlg.exec() ) { printf("PIN:%s\n", dlg.pin().stripWhiteSpace().latin1() ); }else printf("ERR\n"); return 0; } diff --git a/noncore/net/opietooth/blue-pin/pindlg.cc b/noncore/net/opietooth/blue-pin/pindlg.cc index f0b2309..96be1e5 100644 --- a/noncore/net/opietooth/blue-pin/pindlg.cc +++ b/noncore/net/opietooth/blue-pin/pindlg.cc @@ -1,64 +1,125 @@ #include "pindlg.h" /* OPIE */ #include <qpe/config.h> #include <qpe/qpeapplication.h> /* QT */ #include <qcheckbox.h> #include <qlabel.h> #include <qlineedit.h> /* STD */ #include <stdio.h> using namespace OpieTooth; PinDlg::PinDlg( const QString& status, const QString& mac, QWidget* parent, const char* name ) : PinDlgBase( parent, name, WType_Modal ) { m_mac = mac; test( mac ); txtStatus->setText(status); + if(!m_mac.isEmpty()) QPEApplication::showDialog( this ); } +PinDlg::PinDlg(QWidget* parent, + const char* name, + Qt::WFlags f ) + : PinDlgBase( parent, name, f ) +{ + m_mac = makeMacFromArgs(); + + if(m_mac.isEmpty()) + { + // can't obtain MAC + printf("ERR\n"); + qApp->quit(); + } + else + { + test( m_mac ); + txtStatus->setText(makeTextFromArgs()); + QPEApplication::showDialog( this ) ; + } +} + PinDlg::~PinDlg() {} + void PinDlg::setMac( const QString& mac ) { txtStatus->setText( mac ); } + QString PinDlg::pin() const { return lnePin->text(); } void PinDlg::test( const QString& mac ) { if (!mac.isEmpty() ) { Config cfg("bluepin"); cfg.setGroup(mac); lnePin->setText(cfg.readEntryCrypt("pin", QString::null ) ); if ( !lnePin->text().isEmpty() ) { //QTimer::singleShot(100, this, SLOT(accept() ) ); } + } } +QString PinDlg::makeTextFromArgs() +{ + if(qApp->argc() > 2) + { + QCString dir(qApp->argv()[1]) ; + QCString bdaddr(qApp->argv()[2]) ; + + QCString name; + if ( qApp->argc() > 3 ) { + name = qApp->argv()[3]; + } + QString status; + if (dir == "out" ) { + status = QObject::tr("Outgoing connection to "); + } else + status = QObject::tr("Incoming connection from "); + + status += name; + status += "<br>"; + status += "[" + bdaddr + "]"; + + return status ; } + else + return QString(); +} + +QString PinDlg::makeMacFromArgs() +{ + if(qApp->argc() < 3) + return QString(); + else + return qApp->argv()[2] ; +} + void PinDlg::accept() { if ( ckbPin->isChecked() ) { Config cfg("bluepin"); cfg.setGroup(m_mac ); cfg.writeEntryCrypt("pin", lnePin->text() ); } + printf("PIN:%s\n", lnePin->text().latin1()); QDialog::accept(); + qApp->quit(); } diff --git a/noncore/net/opietooth/blue-pin/pindlg.h b/noncore/net/opietooth/blue-pin/pindlg.h index 5e5a763..5f7dc55 100644 --- a/noncore/net/opietooth/blue-pin/pindlg.h +++ b/noncore/net/opietooth/blue-pin/pindlg.h @@ -1,29 +1,40 @@ #include <qdialog.h> #include "pindlgbase.h" namespace OpieTooth { class PinDlg : public PinDlgBase { Q_OBJECT public: - PinDlg(const QString& text, - const QString& mac, + PinDlg(const QString& text="", + const QString& mac="", QWidget* parent = 0, const char* name= 0 ); + + PinDlg(QWidget* parent, + const char* name, + Qt::WFlags f ); + ~PinDlg(); void setMac( const QString& ); QString pin() const; + static QString appName() { return QString::fromLatin1("bluepin") ; } + private: void test( const QString& mac ); + + QString makeTextFromArgs(); + QString makeMacFromArgs(); + QString m_mac; protected slots: void accept(); }; }; |