summaryrefslogtreecommitdiff
path: root/noncore/net/opietooth/manager
Unidiff
Diffstat (limited to 'noncore/net/opietooth/manager') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/opietooth/manager/obexdialog.cpp68
-rw-r--r--noncore/net/opietooth/manager/obexdialog.h15
-rw-r--r--noncore/net/opietooth/manager/obexftpdialog.cpp2
-rw-r--r--noncore/net/opietooth/manager/obexpopup.cpp8
4 files changed, 38 insertions, 55 deletions
diff --git a/noncore/net/opietooth/manager/obexdialog.cpp b/noncore/net/opietooth/manager/obexdialog.cpp
index 8d7b593..4b795b7 100644
--- a/noncore/net/opietooth/manager/obexdialog.cpp
+++ b/noncore/net/opietooth/manager/obexdialog.cpp
@@ -17,23 +17,25 @@ using namespace Opie::Core;
17 17
18using namespace OpieTooth; 18using namespace OpieTooth;
19 19
20using namespace Opie::Core; 20using namespace Opie::Core;
21using namespace Opie::Ui; 21using namespace Opie::Ui;
22using namespace Opie::Core; 22using namespace Opie::Core;
23ObexDialog::ObexDialog(const QString& device, QWidget* parent, const char* name, bool modal, WFlags fl) 23ObexDialog::ObexDialog(const QString& device, int port,
24 QWidget* parent, const char* name, bool modal, WFlags fl)
24 : QDialog( parent, name, modal, fl ) { 25 : QDialog( parent, name, modal, fl ) {
25 26
26 if ( !name ) 27 if ( !name )
27 setName( "ObexDialog" ); 28 setName( "ObexDialog" );
28 setCaption( tr( "beam files " ) ) ; 29 setCaption( tr( "beam files " ) ) ;
29 30
30 m_device = device; 31 m_device = device;
32 m_port = port;
31 33
32 layout = new QVBoxLayout( this ); 34 layout = new QVBoxLayout( this );
33 obexSend = new OProcess(); 35 obexSend = new ObexPush();
34 36
35 info = new QLabel( this ); 37 info = new QLabel( this );
36 info->setText( tr("Which file should be beamed?") ); 38 info->setText( tr("Which file should be beamed?") );
37 39
38 statLine = new QLabel(this); 40 statLine = new QLabel(this);
39 statLine->setText( tr("Ready") ); 41 statLine->setText( tr("Ready") );
@@ -59,24 +61,22 @@ ObexDialog::ObexDialog(const QString& device, QWidget* parent, const char* name
59 layout->addWidget(chNameLine); 61 layout->addWidget(chNameLine);
60 layout->addWidget(sendButton); 62 layout->addWidget(sendButton);
61 layout->addWidget(statLine); 63 layout->addWidget(statLine);
62 64
63 connect( sendButton, SIGNAL( clicked() ), this, SLOT( sendData() ) ); 65 connect( sendButton, SIGNAL( clicked() ), this, SLOT( sendData() ) );
64 66
65 connect(obexSend, SIGNAL(processExited(Opie::Core::OProcess*)), 67 connect(obexSend, SIGNAL(sendComplete(int)),
66 this, SLOT(slotProcessExited(Opie::Core::OProcess*))); 68 this, SLOT(slotPushComplete(int)));
67 connect(obexSend, SIGNAL(receivedStdout(Opie::Core::OProcess*, char*, int)), 69 connect(obexSend, SIGNAL(sendError(int)),
68 this, SLOT(slotPushOut(Opie::Core::OProcess*, char*, int))); 70 this, SLOT(slotPushError(int)));
69 connect(obexSend, SIGNAL(receivedStderr(Opie::Core::OProcess*, char*, int)), 71 connect(obexSend, SIGNAL(status(QCString&)),
70 this, SLOT(slotPushErr(Opie::Core::OProcess*, char*, int))); 72 this, SLOT(slotPushStatus(QCString&)));
71 73
72} 74}
73 75
74ObexDialog::~ObexDialog() { 76ObexDialog::~ObexDialog() {
75 if (obexSend->isRunning())
76 obexSend->kill();
77 delete obexSend; 77 delete obexSend;
78 obexSend = NULL; 78 obexSend = NULL;
79} 79}
80 80
81void ObexDialog::browse() { 81void ObexDialog::browse() {
82 82
@@ -88,53 +88,35 @@ void ObexDialog::browse() {
88 QString str = OFileDialog::getOpenFileName( 1,"/","", types, 0 ); 88 QString str = OFileDialog::getOpenFileName( 1,"/","", types, 0 );
89 cmdLine->setText( str ); 89 cmdLine->setText( str );
90 statLine->setText( tr("Ready") ); 90 statLine->setText( tr("Ready") );
91} 91}
92 92
93void ObexDialog::sendData() { 93void ObexDialog::sendData() {
94 int result; //function call result
94 QString fileURL = cmdLine->text(); 95 QString fileURL = cmdLine->text();
95 QString file = QFileInfo( fileURL ).fileName();
96 QString modifiedName = chNameLine->text(); 96 QString modifiedName = chNameLine->text();
97 QString execName = "ussp-push"; 97 result = obexSend->send(m_device, m_port, fileURL, modifiedName);
98 98 if (result > 0)
99 if (obexSend->isRunning())
100 return; 99 return;
101 obexSend->clearArguments(); 100 else if (result < 0)
102 // vom popupmenu beziehen
103 if ( !modifiedName.isEmpty() ) {
104 *obexSend << execName << "--timeo 30" << m_device << fileURL << modifiedName;
105 } else {
106 *obexSend << execName << "--timeo 30" << m_device << fileURL << file;
107 }
108 obexSend->setUseShell(true);
109 if (!obexSend->start(OProcess::NotifyOnExit, OProcess::All) ) {
110 statLine->setText( tr("Error: couln't start process") ); 101 statLine->setText( tr("Error: couln't start process") );
111 }
112 else 102 else
113 statLine->setText( tr("Sending") ); 103 statLine->setText( tr("Sending") );
114} 104}
115 105
116void ObexDialog::slotPushOut(OProcess*, char* buf, int len) { 106void ObexDialog::slotPushStatus(QCString& str) {
117 QCString str(buf, len);
118 status->append(str); 107 status->append(str);
119} 108}
120 109
121void ObexDialog::slotPushErr(OProcess*, char* buf, int len) { 110void ObexDialog::slotPushComplete(int result) {
122 QCString str(buf, len); 111 status->append( tr("Finished with result ") );
123 status->append(str); 112 status->append( QString::number(result) );
113 status->append( tr("\n") );
114 odebug << result << oendl;
115 statLine->setText( tr("Finished: ") + tr(strerror(result)) );
124} 116}
125 117
126void ObexDialog::slotProcessExited(OProcess*) { 118void ObexDialog::slotPushError(int) {
127 if (obexSend == NULL) 119 status->append( tr("Exited abnormally\n") );
128 return; 120 statLine->setText( tr("Exited abnormally") );
129 if (obexSend->normalExit()) {
130 status->append( tr("Finished with result ") );
131 status->append( QString::number(obexSend->exitStatus()) );
132 status->append( tr("\n") );
133 odebug << obexSend->exitStatus() << oendl;
134 statLine->setText( tr("Finished: ") + tr(strerror(obexSend->exitStatus())) );
135 }
136 else {
137 status->append( tr("Exited abnormally\n") );
138 statLine->setText( tr("Exited abnormally") );
139 }
140} 121}
122//eof
diff --git a/noncore/net/opietooth/manager/obexdialog.h b/noncore/net/opietooth/manager/obexdialog.h
index 44a26f3..063b7f1 100644
--- a/noncore/net/opietooth/manager/obexdialog.h
+++ b/noncore/net/opietooth/manager/obexdialog.h
@@ -1,14 +1,14 @@
1#ifndef OBEXDIALOG_H 1#ifndef OBEXDIALOG_H
2#define OBEXDIALOG_H 2#define OBEXDIALOG_H
3 3
4 4
5#include <qdialog.h> 5#include <qdialog.h>
6#include <opie2/oprocess.h>
7#include <qlabel.h> 6#include <qlabel.h>
8#include <qmultilineedit.h> 7#include <qmultilineedit.h>
8#include "obexpush.h"
9 9
10class QVBoxLayout; 10class QVBoxLayout;
11class QPushButton; 11class QPushButton;
12class QMultiLineEdit; 12class QMultiLineEdit;
13class QLineEdit; 13class QLineEdit;
14 14
@@ -17,32 +17,35 @@ namespace OpieTooth {
17 17
18 class ObexDialog : public QDialog { 18 class ObexDialog : public QDialog {
19 19
20 Q_OBJECT 20 Q_OBJECT
21 21
22 public: 22 public:
23 ObexDialog( const QString& device = 0, QWidget* parent = 0, const char* name = 0, bool modal = TRUE, WFlags fl = 0); 23 ObexDialog( const QString& device = 0, int port = 0,
24 QWidget* parent = 0, const char* name = 0,
25 bool modal = TRUE, WFlags fl = 0);
24 ~ObexDialog(); 26 ~ObexDialog();
25 27
26 28
27private slots: 29private slots:
28 void browse(); 30 void browse();
29 void sendData(); 31 void sendData();
30 void slotPushOut(Opie::Core::OProcess*, char*, int); 32 void slotPushStatus(QCString&);
31 void slotPushErr(Opie::Core::OProcess*, char*, int); 33 void slotPushComplete(int);
32 void slotProcessExited(Opie::Core::OProcess* proc); 34 void slotPushError(int);
33 35
34 protected: 36 protected:
35 QVBoxLayout* layout; 37 QVBoxLayout* layout;
36 QLineEdit* cmdLine; 38 QLineEdit* cmdLine;
37 QLineEdit* chNameLine; 39 QLineEdit* chNameLine;
38 QPushButton* sendButton; 40 QPushButton* sendButton;
39 QLabel* info; 41 QLabel* info;
40 QMultiLineEdit* status; 42 QMultiLineEdit* status;
41 QLabel* statLine; 43 QLabel* statLine;
42 private: 44 private:
43 // Device that is used 45 // Device that is used
44 QString m_device; 46 QString m_device;
45 Opie::Core::OProcess *obexSend; 47 int m_port; //Port used
48 ObexPush* obexSend;
46 }; 49 };
47} 50}
48#endif 51#endif
diff --git a/noncore/net/opietooth/manager/obexftpdialog.cpp b/noncore/net/opietooth/manager/obexftpdialog.cpp
index efb3ff2..2a578ac 100644
--- a/noncore/net/opietooth/manager/obexftpdialog.cpp
+++ b/noncore/net/opietooth/manager/obexftpdialog.cpp
@@ -240,13 +240,13 @@ void ObexFtpDialog::slotCd(QListViewItem* item)
240 else { 240 else {
241 if (curdir != "" && curdir.right(1) != "/") 241 if (curdir != "" && curdir.right(1) != "/")
242 curdir += "/"; 242 curdir += "/";
243 curdir += file->text(0); 243 curdir += file->text(0);
244 } 244 }
245 odebug << "Browse " << curdir << oendl; 245 odebug << "Browse " << curdir << oendl;
246 if (obexftp_setpath(client, curdir, 0) < 0) 246 if (obexftp_setpath(client, QFile::encodeName(curdir), 0) < 0)
247 log(tr("CD failed: ") + tr(strerror(errno))); 247 log(tr("CD failed: ") + tr(strerror(errno)));
248 doBrowse(); 248 doBrowse();
249 } 249 }
250} 250}
251 251
252/* 252/*
diff --git a/noncore/net/opietooth/manager/obexpopup.cpp b/noncore/net/opietooth/manager/obexpopup.cpp
index d1d1b4a..759a452 100644
--- a/noncore/net/opietooth/manager/obexpopup.cpp
+++ b/noncore/net/opietooth/manager/obexpopup.cpp
@@ -15,13 +15,13 @@ using namespace OpieTooth;
15/* 15/*
16 * c'tor init the QAction 16 * c'tor init the QAction
17 */ 17 */
18ObexPopup::ObexPopup(const OpieTooth::Services& service, OpieTooth::BTDeviceItem* item) 18ObexPopup::ObexPopup(const OpieTooth::Services& service, OpieTooth::BTDeviceItem* item)
19 : QPopupMenu(), m_service(service) 19 : QPopupMenu(), m_service(service)
20{ 20{
21 owarn << "ObexPopup c'tor" << oendl; 21 odebug << "ObexPopup c'tor" << oendl;
22 22
23 m_item = item; 23 m_item = item;
24 /* connect action */ 24 /* connect action */
25 m_push = new QAction( ); // so it's get deleted 25 m_push = new QAction( ); // so it's get deleted
26 m_push->setText("Push file"); 26 m_push->setText("Push file");
27 m_push->addTo( this ); 27 m_push->addTo( this );
@@ -36,14 +36,12 @@ ObexPopup::~ObexPopup()
36 36
37 37
38void ObexPopup::slotPush() 38void ObexPopup::slotPush()
39{ 39{
40 QString device = m_item->mac(); 40 QString device = m_item->mac();
41 int port = m_service.protocolDescriptorList().last().port(); 41 int port = m_service.protocolDescriptorList().last().port();
42 device += "@"; 42 odebug << "push something to " << device << " " << port << oendl;
43 device += QString::number(port); 43 ObexDialog obexDialog(device, port);
44 owarn << "push something to " << device << oendl;
45 ObexDialog obexDialog(device);
46 QPEApplication::execDialog( &obexDialog ); 44 QPEApplication::execDialog( &obexDialog );
47} 45}
48 46
49 47