summaryrefslogtreecommitdiff
authorkorovkin <korovkin>2006-04-05 19:29:19 (UTC)
committer korovkin <korovkin>2006-04-05 19:29:19 (UTC)
commit6c1c44237a16dc8fed89905ae729e36eb9711c07 (patch) (side-by-side diff)
treecfcb46f571669c0d8e57ee703c712b09ed8af185
parent31ea6e9f697d72a31ce319f7f42254fe90e48a36 (diff)
downloadopie-6c1c44237a16dc8fed89905ae729e36eb9711c07.zip
opie-6c1c44237a16dc8fed89905ae729e36eb9711c07.tar.gz
opie-6c1c44237a16dc8fed89905ae729e36eb9711c07.tar.bz2
Added combobox with ppp script names from /etc/ppp/peers.
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/net/opietooth/manager/dundialog.cpp15
-rw-r--r--noncore/net/opietooth/manager/dundialog.h3
-rw-r--r--noncore/net/opietooth/manager/pppdialog.cpp26
-rw-r--r--noncore/net/opietooth/manager/pppdialog.h12
4 files changed, 46 insertions, 10 deletions
diff --git a/noncore/net/opietooth/manager/dundialog.cpp b/noncore/net/opietooth/manager/dundialog.cpp
index c6d8619..872ab00 100644
--- a/noncore/net/opietooth/manager/dundialog.cpp
+++ b/noncore/net/opietooth/manager/dundialog.cpp
@@ -1,148 +1,157 @@
/* $Id$ */
/* DUN connection dialog */
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
#include "dundialog.h"
#include <qpushbutton.h>
#include <qmultilineedit.h>
#include <qlineedit.h>
#include <qlayout.h>
#include <qcheckbox.h>
#include <qlabel.h>
#include <qstring.h>
+#include <qcombobox.h>
+#include <qdir.h>
#include <opie2/oprocess.h>
#include <opie2/odebug.h>
using namespace Opie::Core;
using namespace OpieTooth;
using namespace Opie::Core;
DunDialog::DunDialog( const QString& device, int port, QWidget* parent,
const char* name, bool modal, WFlags fl )
: QDialog( parent, name, modal, fl ) {
+ QDir d("/etc/ppp/peers/"); //Dir we search files in
+ d.setFilter( QDir::Files);
+ d.setSorting( QDir::Size | QDir::Reversed );
+
if ( !name )
setName( "DUNDialog" );
setCaption( tr( "DUN connection " ) ) ;
m_device = device;
m_port = port;
m_dunConnect = NULL;
layout = new QVBoxLayout( this );
QLabel* info = new QLabel( this );
info->setText( tr("Enter an ppp script name:") );
- cmdLine = new QLineEdit( this );
+ cmdLine = new QComboBox( this );
+ cmdLine->setEditable(true);
outPut = new QMultiLineEdit( this );
QFont outPut_font( outPut->font() );
outPut_font.setPointSize( 8 );
outPut->setFont( outPut_font );
outPut->setWordWrap( QMultiLineEdit::WidgetWidth );
connectButton = new QPushButton( this );
connectButton->setText( tr( "Connect" ) );
doEncryption = new QCheckBox(this, "encrypt");
doEncryption->setText( tr( "encrypt" ) );
persist = new QCheckBox(this, "persist");
persist->setText( tr( "persist" ) );
layout->addWidget(info);
layout->addWidget(cmdLine);
layout->addWidget(doEncryption);
layout->addWidget(persist);
layout->addWidget(outPut);
layout->addWidget(connectButton);
connect( connectButton, SIGNAL( clicked() ), this, SLOT( connectToDevice() ) );
+ //And fill cmdLine with ppp script filenames
+ cmdLine->insertStringList(d.entryList());
}
DunDialog::~DunDialog() {
}
void DunDialog::connectToDevice() {
bool doEnc = doEncryption->isChecked();
bool doPersist = persist->isChecked();
- if (cmdLine->text() == "")
+ if (cmdLine->currentText() == "")
return;
if (m_dunConnect) {
outPut->append(tr("Work in progress"));
return;
}
m_dunConnect = new OProcess();
outPut->clear();
// Fill process command line
*m_dunConnect << tr("dund")
<< tr("--connect") << m_device
<< tr("--channel") << QString::number(m_port)
<< tr("--nodetach");
if (doEnc)
*m_dunConnect << tr("--encrypt");
if (doPersist)
*m_dunConnect << tr("--persist");
*m_dunConnect << tr("call")
- << cmdLine->text();
+ << cmdLine->currentText();
if (!m_dunConnect->start(OProcess::NotifyOnExit,
OProcess::All)) {
outPut->append(tr("Couldn't start"));
delete m_dunConnect;
m_dunConnect = NULL;
}
else
{
m_dunConnect->resume();
outPut->append(tr("Started"));
connect(m_dunConnect,
SIGNAL(receivedStdout(Opie::Core::OProcess*, char*, int)),
this, SLOT(fillOutPut(Opie::Core::OProcess*, char*, int)));
connect(m_dunConnect,
SIGNAL(receivedStderr(Opie::Core::OProcess*, char*, int)),
this, SLOT(fillErr(Opie::Core::OProcess*, char*, int)));
connect(m_dunConnect,
SIGNAL(processExited(Opie::Core::OProcess*)),
this, SLOT(slotProcessExited(Opie::Core::OProcess*)));
}
}
void DunDialog::fillOutPut( OProcess*, char* cha, int len ) {
QCString str(cha, len);
outPut->append(str);
}
void DunDialog::fillErr(OProcess*, char* buf, int len)
{
QCString str(buf, len);
outPut->append(str);
}
void DunDialog::slotProcessExited(OProcess* proc) {
if (m_dunConnect->normalExit()) {
outPut->append( tr("Finished with result ") );
outPut->append( QString::number(proc->exitStatus()) );
}
else
outPut->append( tr("Exited abnormally") );
delete m_dunConnect;
m_dunConnect = NULL;
}
void DunDialog::closeEvent(QCloseEvent* e)
{
if (m_dunConnect && m_dunConnect->isRunning())
m_dunConnect->kill();
QDialog::closeEvent(e);
}
//eof
diff --git a/noncore/net/opietooth/manager/dundialog.h b/noncore/net/opietooth/manager/dundialog.h
index a0d16ad..8310e40 100644
--- a/noncore/net/opietooth/manager/dundialog.h
+++ b/noncore/net/opietooth/manager/dundialog.h
@@ -1,53 +1,54 @@
/* $Id$ */
/* DUN connection dialog */
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
#ifndef DUNDIALOG_H
#define DUNDIALOG_H
#include <qdialog.h>
#include <opie2/oprocess.h>
class QVBoxLayout;
class QPushButton;
class QMultiLineEdit;
class QLineEdit;
class QCheckBox;
+class QComboBox;
namespace OpieTooth {
class DunDialog : public QDialog {
Q_OBJECT
public:
DunDialog(const QString& device = 0, int port = 0, QWidget* parent = 0, const char* name = 0, bool modal = TRUE, WFlags fl = 0);
~DunDialog();
private slots:
void connectToDevice();
void fillOutPut( Opie::Core::OProcess* pppDial, char* cha, int len );
void fillErr(Opie::Core::OProcess*, char*, int);
void slotProcessExited(Opie::Core::OProcess* proc);
void closeEvent(QCloseEvent* e);
protected:
QVBoxLayout* layout;
- QLineEdit* cmdLine;
+ QComboBox* cmdLine;
QPushButton* connectButton;
QMultiLineEdit* outPut;
QCheckBox* doEncryption;
QCheckBox* persist;
private:
QString m_device; //device BT address
int m_port; //device process
Opie::Core::OProcess* m_dunConnect; //DUN process
};
}
#endif
diff --git a/noncore/net/opietooth/manager/pppdialog.cpp b/noncore/net/opietooth/manager/pppdialog.cpp
index 11091c4..1df22a1 100644
--- a/noncore/net/opietooth/manager/pppdialog.cpp
+++ b/noncore/net/opietooth/manager/pppdialog.cpp
@@ -1,137 +1,153 @@
-
+/* $Id$ */
+/* PPP/rfcomm connection dialog */
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
#include "pppdialog.h"
#include "rfcommhelper.h"
#include <qpushbutton.h>
#include <qmultilineedit.h>
#include <qlineedit.h>
#include <qlayout.h>
#include <qcombobox.h>
#include <qlabel.h>
+#include <qdir.h>
#include <opie2/oprocess.h>
#include <opie2/odebug.h>
using namespace Opie::Core;
using namespace OpieTooth;
using namespace Opie::Core;
Connection PPPDialog::conns[NCONNECTS];
PPPDialog::PPPDialog( const QString& device, int port, QWidget* parent,
const char* name, bool modal, WFlags fl )
: QDialog( parent, name, modal, fl ) {
int i; //Just an index variable
+ QDir d("/etc/ppp/peers/"); //Dir we search files in
+ d.setFilter( QDir::Files);
+ d.setSorting( QDir::Size | QDir::Reversed );
if ( !name )
setName( "PPPDialog" );
setCaption( tr( "ppp connection " ) ) ;
m_device = device;
m_port = port;
layout = new QVBoxLayout( this );
QLabel* info = new QLabel( this );
- info->setText( tr("Enter an ppp script name:") );
+ info->setText( tr("Enter a ppp script name:") );
- cmdLine = new QLineEdit( this );
+ cmdLine = new QComboBox( this );
+ cmdLine->setEditable(true);
outPut = new QMultiLineEdit( this );
QFont outPut_font( outPut->font() );
outPut_font.setPointSize( 8 );
outPut->setFont( outPut_font );
outPut->setWordWrap( QMultiLineEdit::WidgetWidth );
connectButton = new QPushButton( this );
connectButton->setText( tr( "Connect" ) );
serPort = new QComboBox(this);
for (i = 0; i < NCONNECTS; i++) {
if (!PPPDialog::conns[i].proc.isRunning())
serPort->insertItem(tr("rfcomm%1").arg(i));
}
layout->addWidget(info);
layout->addWidget(cmdLine);
layout->addWidget(serPort);
layout->addWidget(outPut);
layout->addWidget(connectButton);
connect( connectButton, SIGNAL( clicked() ), this, SLOT( connectToDevice() ) );
+ //And fill cmdLine with ppp script filenames
+ cmdLine->insertStringList(d.entryList());
}
PPPDialog::~PPPDialog() {
}
void PPPDialog::connectToDevice() {
int portNum = serPort->currentText().right(1).toInt();
if (PPPDialog::conns[portNum].proc.isRunning()) {
outPut->append(tr("Work in progress"));
return;
}
outPut->clear();
PPPDialog::conns[portNum].proc.clearArguments();
// vom popupmenu beziehen
- if (cmdLine->text().isEmpty()) {//Connect by rfcomm
+ if (cmdLine->currentText().isEmpty()) {//Connect by rfcomm
PPPDialog::conns[portNum].proc << "rfcomm" << "connect"
<< QString::number(portNum) << m_device << QString::number(m_port);
}
else {
PPPDialog::conns[portNum].proc << "pppd"
<< tr("/dev/bluetooth/rfcomm/%1").arg(portNum)
<< "call"
- << cmdLine->text();
+ << cmdLine->currentText();
}
if (!PPPDialog::conns[portNum].proc.start(OProcess::NotifyOnExit,
OProcess::All)) {
outPut->append(tr("Couldn't start"));
}
else
{
PPPDialog::conns[portNum].proc.resume();
outPut->append(tr("Started"));
PPPDialog::conns[portNum].btAddr = m_device;
PPPDialog::conns[portNum].port = m_port;
connect(&PPPDialog::conns[portNum].proc,
SIGNAL(receivedStdout(Opie::Core::OProcess*, char*, int)),
this, SLOT(fillOutPut(Opie::Core::OProcess*, char*, int)));
connect( &PPPDialog::conns[portNum].proc,
SIGNAL(receivedStderr(Opie::Core::OProcess*, char*, int)),
this, SLOT(fillErr(Opie::Core::OProcess*, char*, int)));
connect( &PPPDialog::conns[portNum].proc,
SIGNAL(processExited(Opie::Core::OProcess*)),
this, SLOT(slotProcessExited(Opie::Core::OProcess*)));
}
}
void PPPDialog::fillOutPut( OProcess*, char* cha, int len ) {
QCString str(cha, len);
outPut->append(str);
}
void PPPDialog::fillErr(OProcess*, char* buf, int len)
{
QCString str(buf, len);
outPut->append(str);
}
void PPPDialog::slotProcessExited(OProcess* proc) {
if (proc->normalExit()) {
outPut->append( tr("Finished with result ") );
outPut->append( QString::number(proc->exitStatus()) );
}
else
outPut->append( tr("Exited abnormally") );
}
void PPPDialog::closeEvent(QCloseEvent* e)
{
int i; //index variable
for (i = 0; i < NCONNECTS; i++) {
if(PPPDialog::conns[i].proc.isRunning())
PPPDialog::conns[i].proc.kill();
}
QDialog::closeEvent(e);
}
//eof
diff --git a/noncore/net/opietooth/manager/pppdialog.h b/noncore/net/opietooth/manager/pppdialog.h
index e0ffc7f..d55c15f 100644
--- a/noncore/net/opietooth/manager/pppdialog.h
+++ b/noncore/net/opietooth/manager/pppdialog.h
@@ -1,51 +1,61 @@
+/* $Id$ */
+/* PPP/rfcomm connection dialog */
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
#ifndef PPPDIALOG_H
#define PPPDIALOG_H
#include <qdialog.h>
#include <opie2/oprocess.h>
class QVBoxLayout;
class QPushButton;
class QMultiLineEdit;
class QLineEdit;
class QComboBox;
#define NCONNECTS 10 //Maximal
namespace OpieTooth {
typedef struct {
Opie::Core::OProcess proc; //Connection process
QString btAddr; //MAC address
int port; //port
} Connection;
class PPPDialog : public QDialog {
Q_OBJECT
public:
PPPDialog(const QString& device = 0, int port = 0, QWidget* parent = 0, const char* name = 0, bool modal = TRUE, WFlags fl = 0);
~PPPDialog();
private slots:
void connectToDevice();
void fillOutPut( Opie::Core::OProcess* pppDial, char* cha, int len );
void fillErr(Opie::Core::OProcess*, char*, int);
void slotProcessExited(Opie::Core::OProcess* proc);
void closeEvent(QCloseEvent* e);
public:
//Array of connections indexed by rfcomm device number
static Connection conns[NCONNECTS];
protected:
QVBoxLayout* layout;
- QLineEdit* cmdLine;
+ QComboBox* cmdLine;
QPushButton* connectButton;
QMultiLineEdit* outPut;
QComboBox* serPort;
private:
QString m_device;
int m_port;
};
}
#endif