author | korovkin <korovkin> | 2006-05-06 18:37:33 (UTC) |
---|---|---|
committer | korovkin <korovkin> | 2006-05-06 18:37:33 (UTC) |
commit | 2d9247d6c2917fd967d0d01d4d9aa6de4fb820f1 (patch) (unidiff) | |
tree | d42ffb6e48f3d0f3b6b53b6c1b628e28e0783ceb | |
parent | 0430a18e64df0cdfc1e468a7f7bbe77efc63d0ca (diff) | |
download | opie-2d9247d6c2917fd967d0d01d4d9aa6de4fb820f1.zip opie-2d9247d6c2917fd967d0d01d4d9aa6de4fb820f1.tar.gz opie-2d9247d6c2917fd967d0d01d4d9aa6de4fb820f1.tar.bz2 |
Browse button forces reconnection.
-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 | |||
@@ -111,12 +111,17 @@ ObexFtpDialog::~ObexFtpDialog() | |||
111 | obexftp_close(client); | 111 | obexftp_close(client); |
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 |
122 | const uint8_t* use_uuid; //uuid | 127 | const uint8_t* use_uuid; //uuid |
@@ -148,9 +153,9 @@ void ObexFtpDialog::slotBrowse() | |||
148 | use_uuid = UUID_FBS; | 153 | use_uuid = UUID_FBS; |
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"); |
156 | return; | 161 | return; |
@@ -239,9 +244,9 @@ void ObexFtpDialog::slotCd(QListViewItem* item) | |||
239 | } | 244 | } |
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 | ||
247 | /* | 252 | /* |
@@ -332,9 +337,9 @@ void ObexFtpDialog::putFile() | |||
332 | errBox(local + QString(" send ERROR")); | 337 | errBox(local + QString(" send ERROR")); |
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 | } |
340 | } | 345 | } |
@@ -370,20 +375,28 @@ void ObexFtpDialog::delFile() | |||
370 | errBox(file2get + QString(" remove ERROR")); | 375 | errBox(file2get + QString(" remove ERROR")); |
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) { |
389 | errBox("Error opening obexftp-client"); | 402 | errBox("Error opening obexftp-client"); |
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 | |||
@@ -34,15 +34,17 @@ namespace OpieTooth { | |||
34 | void log(QString& str); | 34 | void log(QString& str); |
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 |
48 | int transport; //transport type | 50 | int transport; //transport type |