-rw-r--r-- | noncore/net/opietooth/manager/obexftpdialog.cpp | 29 | ||||
-rw-r--r-- | noncore/net/opietooth/manager/obexftpdialog.h | 4 |
2 files changed, 24 insertions, 9 deletions
diff --git a/noncore/net/opietooth/manager/obexftpdialog.cpp b/noncore/net/opietooth/manager/obexftpdialog.cpp index 2f04ecf..efb3ff2 100644 --- a/noncore/net/opietooth/manager/obexftpdialog.cpp +++ b/noncore/net/opietooth/manager/obexftpdialog.cpp | |||
@@ -112,10 +112,15 @@ ObexFtpDialog::~ObexFtpDialog() | |||
112 | } | 112 | } |
113 | } | 113 | } |
114 | 114 | ||
115 | void ObexFtpDialog::slotBrowse() | ||
116 | { | ||
117 | doBrowse(TRUE); | ||
118 | } | ||
119 | |||
115 | /* | 120 | /* |
116 | * Do device browsing | 121 | * Do device browsing |
117 | */ | 122 | */ |
118 | void ObexFtpDialog::slotBrowse() | 123 | void ObexFtpDialog::doBrowse(bool reconnect) |
119 | { | 124 | { |
120 | stat_entry_t* ent; //Directory entry | 125 | stat_entry_t* ent; //Directory entry |
121 | void *dir; //Directory to read | 126 | void *dir; //Directory to read |
@@ -149,7 +154,7 @@ void ObexFtpDialog::slotBrowse() | |||
149 | len = sizeof(UUID_FBS); | 154 | len = sizeof(UUID_FBS); |
150 | } | 155 | } |
151 | 156 | ||
152 | if (!cli_connect_uuid(use_uuid, len)) { | 157 | if (!cli_connect_uuid(use_uuid, len, reconnect)) { |
153 | log(tr("Connection failed: ") + tr(strerror(errno))); | 158 | log(tr("Connection failed: ") + tr(strerror(errno))); |
154 | errBox("Connection failed"); | 159 | errBox("Connection failed"); |
155 | status("Connection failed"); | 160 | status("Connection failed"); |
@@ -240,7 +245,7 @@ void ObexFtpDialog::slotCd(QListViewItem* item) | |||
240 | odebug << "Browse " << curdir << oendl; | 245 | odebug << "Browse " << curdir << oendl; |
241 | if (obexftp_setpath(client, curdir, 0) < 0) | 246 | if (obexftp_setpath(client, curdir, 0) < 0) |
242 | log(tr("CD failed: ") + tr(strerror(errno))); | 247 | log(tr("CD failed: ") + tr(strerror(errno))); |
243 | slotBrowse(); | 248 | doBrowse(); |
244 | } | 249 | } |
245 | } | 250 | } |
246 | 251 | ||
@@ -333,7 +338,7 @@ void ObexFtpDialog::putFile() | |||
333 | status(local + QString(" send ERROR")); | 338 | status(local + QString(" send ERROR")); |
334 | } | 339 | } |
335 | else { | 340 | else { |
336 | slotBrowse(); | 341 | doBrowse(); |
337 | log(local + QString(" sent")); | 342 | log(local + QString(" sent")); |
338 | status(local + QString(" sent")); | 343 | status(local + QString(" sent")); |
339 | } | 344 | } |
@@ -371,18 +376,26 @@ void ObexFtpDialog::delFile() | |||
371 | status(file2get + QString(" remove ERROR")); | 376 | status(file2get + QString(" remove ERROR")); |
372 | } | 377 | } |
373 | else { | 378 | else { |
374 | slotBrowse(); | 379 | doBrowse(); |
375 | log(file2get + QString(" removed")); | 380 | log(file2get + QString(" removed")); |
376 | status(file2get + QString(" removed")); | 381 | status(file2get + QString(" removed")); |
377 | } | 382 | } |
378 | } | 383 | } |
379 | 384 | ||
380 | /* connect with given uuid. re-connect every time */ | 385 | /* connect with given uuid. re-connect every time */ |
381 | int ObexFtpDialog::cli_connect_uuid(const uint8_t *uuid, int uuid_len) | 386 | int ObexFtpDialog::cli_connect_uuid(const uint8_t *uuid, int uuid_len, |
387 | bool reconnect) | ||
382 | { | 388 | { |
383 | int retry; | 389 | int retry; |
384 | if (client != NULL) | 390 | if (client != NULL) { |
385 | return TRUE; | 391 | if (reconnect) { |
392 | obexftp_disconnect(client); | ||
393 | obexftp_close(client); | ||
394 | sleep(3); | ||
395 | } | ||
396 | else | ||
397 | return TRUE; | ||
398 | } | ||
386 | /* Open */ | 399 | /* Open */ |
387 | client = obexftp_open (transport, NULL, info_cb, this); | 400 | client = obexftp_open (transport, NULL, info_cb, this); |
388 | if(client == NULL) { | 401 | if(client == NULL) { |
diff --git a/noncore/net/opietooth/manager/obexftpdialog.h b/noncore/net/opietooth/manager/obexftpdialog.h index 75ee95b..45699d2 100644 --- a/noncore/net/opietooth/manager/obexftpdialog.h +++ b/noncore/net/opietooth/manager/obexftpdialog.h | |||
@@ -35,13 +35,15 @@ namespace OpieTooth { | |||
35 | void incProgress(); | 35 | void incProgress(); |
36 | void doneProgress(); | 36 | void doneProgress(); |
37 | protected: | 37 | protected: |
38 | int cli_connect_uuid(const uint8_t *uuid, int uuid_len); | 38 | int cli_connect_uuid(const uint8_t *uuid, int uuid_len, |
39 | bool reconnect = FALSE); | ||
39 | int errBox(QCString msg); //Error message box | 40 | int errBox(QCString msg); //Error message box |
40 | int errBox(QString msg); //Error message box | 41 | int errBox(QString msg); //Error message box |
41 | int errBox(const char* msg); //Error message box | 42 | int errBox(const char* msg); //Error message box |
42 | void status(QCString msg); //Text in the status bar | 43 | void status(QCString msg); //Text in the status bar |
43 | void status(QString msg); //Text in the status bar | 44 | void status(QString msg); //Text in the status bar |
44 | void status(const char* msg); //Text in the status bar | 45 | void status(const char* msg); //Text in the status bar |
46 | void doBrowse(bool reconnect = FALSE); //Browse device | ||
45 | protected: | 47 | protected: |
46 | QString m_device; //device MAC address | 48 | QString m_device; //device MAC address |
47 | int m_port; //port | 49 | int m_port; //port |