-rw-r--r-- | noncore/net/opietooth/manager/obexftpdialog.cpp | 99 | ||||
-rw-r--r-- | noncore/net/opietooth/manager/obexftpdialog.h | 2 | ||||
-rw-r--r-- | noncore/net/opietooth/manager/obexftpdialogbase.cpp | 89 | ||||
-rw-r--r-- | noncore/net/opietooth/manager/obexftpdialogbase.h | 18 | ||||
-rw-r--r-- | noncore/net/opietooth/manager/obexftpdialogbase.ui | 211 |
5 files changed, 283 insertions, 136 deletions
diff --git a/noncore/net/opietooth/manager/obexftpdialog.cpp b/noncore/net/opietooth/manager/obexftpdialog.cpp index c77d49d..80a81b4 100644 --- a/noncore/net/opietooth/manager/obexftpdialog.cpp +++ b/noncore/net/opietooth/manager/obexftpdialog.cpp | |||
@@ -1,154 +1,180 @@ | |||
1 | /* $Id$ */ | 1 | /* $Id$ */ |
2 | /* OBEX file browser dialog */ | 2 | /* OBEX file browser dialog */ |
3 | /*************************************************************************** | 3 | /*************************************************************************** |
4 | * * | 4 | * * |
5 | * This program is free software; you can redistribute it and/or modify * | 5 | * This program is free software; you can redistribute it and/or modify * |
6 | * it under the terms of the GNU General Public License as published by * | 6 | * it under the terms of the GNU General Public License as published by * |
7 | * the Free Software Foundation; either version 2 of the License, or * | 7 | * the Free Software Foundation; either version 2 of the License, or * |
8 | * (at your option) any later version. * | 8 | * (at your option) any later version. * |
9 | * * | 9 | * * |
10 | ***************************************************************************/ | 10 | ***************************************************************************/ |
11 | /* | 11 | /* |
12 | * This code uses and is based on ObexFTP project code: http://triq.net/obexftp/ | 12 | * This code uses and is based on ObexFTP project code: http://triq.net/obexftp/ |
13 | */ | 13 | */ |
14 | #include <sys/stat.h> | 14 | #include <sys/stat.h> |
15 | #include <sys/types.h> | ||
16 | #include <unistd.h> | ||
17 | #include <string.h> | ||
18 | #include <errno.h> | ||
15 | #include <qpushbutton.h> | 19 | #include <qpushbutton.h> |
16 | #include <qmessagebox.h> | 20 | #include <qmessagebox.h> |
17 | #include <qmultilineedit.h> | 21 | #include <qmultilineedit.h> |
22 | #include <qspinbox.h> | ||
23 | #include <qcombobox.h> | ||
18 | #include <qlistview.h> | 24 | #include <qlistview.h> |
19 | #include <qprogressbar.h> | 25 | #include <qprogressbar.h> |
20 | #include <qlabel.h> | 26 | #include <qlabel.h> |
21 | #include <qlayout.h> | 27 | #include <qlayout.h> |
22 | #include <errno.h> | 28 | #include <errno.h> |
23 | #include "obexftpdialog.h" | 29 | #include "obexftpdialog.h" |
24 | #include "filelistitem.h" | 30 | #include "filelistitem.h" |
25 | 31 | ||
26 | #include <qpe/qpeapplication.h> | 32 | #include <qpe/qpeapplication.h> |
27 | #include <qpe/resource.h> | 33 | #include <qpe/resource.h> |
28 | #include <qpe/config.h> | 34 | #include <qpe/config.h> |
29 | #include <opie2/odebug.h> | 35 | #include <opie2/odebug.h> |
30 | #include <opie2/ofileselector.h> | 36 | #include <opie2/ofileselector.h> |
31 | 37 | ||
32 | using namespace Opie::Core; | 38 | using namespace Opie::Core; |
33 | using namespace Opie::Ui; | 39 | using namespace Opie::Ui; |
34 | 40 | ||
35 | using namespace OpieTooth; | 41 | using namespace OpieTooth; |
36 | 42 | ||
37 | #define MAX_PROGRESS 14 //Maximal progress bar | 43 | #define MAX_PROGRESS 14 //Maximal progress bar |
38 | 44 | ||
39 | static void info_cb(int event, const char *msg, int len, void* data); | 45 | static void info_cb(int event, const char *msg, int len, void* data); |
40 | 46 | ||
41 | /* | 47 | /* |
42 | * Public constructor | 48 | * Public constructor |
43 | * device - bluetooth address of the device | 49 | * device - bluetooth address of the device |
44 | * port - port to connect to | 50 | * port - port to connect to |
45 | */ | 51 | */ |
46 | ObexFtpDialog::ObexFtpDialog(const QString& device, int port, | 52 | ObexFtpDialog::ObexFtpDialog(const QString& device, int port, |
47 | QWidget* parent, const char* name, bool modal, WFlags fl) | 53 | QWidget* parent, const char* name, bool modal, WFlags fl) |
48 | : ObexFtpDialogBase(parent, name, modal, fl), m_device(device), | 54 | : ObexFtpDialogBase(parent, name, modal, fl), m_device(device), |
49 | m_port(port), curdir("") | 55 | m_port(port), curdir("") |
50 | { | 56 | { |
51 | client = NULL; | 57 | client = NULL; |
58 | nRetries = 3; | ||
52 | transport = OBEX_TRANS_BLUETOOTH; | 59 | transport = OBEX_TRANS_BLUETOOTH; |
53 | use_conn = TRUE; | 60 | use_conn = TRUE; |
54 | use_path = TRUE; | 61 | use_path = TRUE; |
55 | progressStatus = 0; | 62 | progressStatus = 0; |
56 | localCurdir = "/"; | 63 | localCurdir = "/"; |
57 | browseLog->setEdited(FALSE); | 64 | browseLog->setEdited(FALSE); |
58 | fileList->setSorting(1); | 65 | fileList->setSorting(1); |
59 | fileList->clear(); | 66 | fileList->clear(); |
60 | fileProgress->setTotalSteps(MAX_PROGRESS); | 67 | fileProgress->setTotalSteps(MAX_PROGRESS); |
61 | statusBar->clear(); | 68 | statusBar->clear(); |
62 | localLayout = new QVBoxLayout(localFs); | 69 | localLayout = new QVBoxLayout(localFs); |
63 | localLayout->setSpacing( 0 ); | 70 | localLayout->setSpacing( 0 ); |
64 | localLayout->setMargin( 0 ); | 71 | localLayout->setMargin( 0 ); |
65 | destFile = new OFileSelector(localFs, | 72 | destFile = new OFileSelector(localFs, |
66 | OFileSelector::FileSelector, | 73 | OFileSelector::FileSelector, |
67 | OFileSelector::ExtendedAll, localCurdir, ""); | 74 | OFileSelector::ExtendedAll, localCurdir, ""); |
68 | destFile->setCloseVisible(false); | 75 | destFile->setCloseVisible(false); |
69 | destFile->setNewVisible(false); | 76 | destFile->setNewVisible(false); |
70 | localLayout->addWidget(destFile); | 77 | localLayout->addWidget(destFile); |
78 | nReries->setValue(nRetries); | ||
71 | connect(browseOK, SIGNAL(clicked()), SLOT(slotBrowse())); | 79 | connect(browseOK, SIGNAL(clicked()), SLOT(slotBrowse())); |
72 | connect(fileList, SIGNAL(clicked(QListViewItem*)), | 80 | connect(fileList, SIGNAL(clicked(QListViewItem*)), |
73 | SLOT(slotCd(QListViewItem*))); | 81 | SLOT(slotCd(QListViewItem*))); |
74 | connect(getButton, | 82 | connect(getButton, |
75 | SIGNAL(clicked()), | 83 | SIGNAL(clicked()), |
76 | SLOT(getFile())); | 84 | SLOT(getFile())); |
85 | connect(putButton, | ||
86 | SIGNAL(clicked()), | ||
87 | SLOT(putFile())); | ||
77 | connect(destFile, | 88 | connect(destFile, |
78 | SIGNAL(dirSelected (const QString&)), | 89 | SIGNAL(dirSelected (const QString&)), |
79 | SLOT(updateDir(const QString&))); | 90 | SLOT(updateDir(const QString&))); |
80 | } | 91 | } |
81 | 92 | ||
82 | ObexFtpDialog::~ObexFtpDialog() | 93 | ObexFtpDialog::~ObexFtpDialog() |
83 | { | 94 | { |
84 | if (client != NULL) { | 95 | if (client != NULL) { |
85 | obexftp_disconnect(client); | 96 | obexftp_disconnect(client); |
86 | obexftp_close(client); | 97 | obexftp_close(client); |
87 | } | 98 | } |
88 | } | 99 | } |
89 | 100 | ||
90 | /* | 101 | /* |
91 | * Do device browsing | 102 | * Do device browsing |
92 | */ | 103 | */ |
93 | void ObexFtpDialog::slotBrowse() | 104 | void ObexFtpDialog::slotBrowse() |
94 | { | 105 | { |
95 | stat_entry_t* ent; //Directory entry | 106 | stat_entry_t* ent; //Directory entry |
96 | void *dir; //Directory to read | 107 | void *dir; //Directory to read |
97 | const uint8_t use_uuid[] = __UUID_FBS_bytes; | 108 | const uint8_t* use_uuid; //uuid |
98 | int len = sizeof(UUID_FBS); | 109 | int len; //uuid length |
99 | FileListItem* root; //root node | 110 | FileListItem* root; //root node |
100 | stat_entry_t* st; //File statistics | ||
101 | int fsize; //file size | 111 | int fsize; //file size |
112 | bool numOk; //true if the string is a number | ||
113 | int tmp; //just a temp var | ||
102 | 114 | ||
103 | status(tr("Connecting to ") + m_device); | 115 | status(tr("Connecting to ") + m_device); |
104 | odebug << "Browse device " << m_device << oendl; | 116 | odebug << "Browse device " << m_device << oendl; |
105 | browseLog->clear(); | 117 | browseLog->clear(); |
106 | fileList->clear(); | 118 | fileList->clear(); |
107 | progressStatus = 0; | 119 | progressStatus = 0; |
120 | fileProgress->setTotalSteps(MAX_PROGRESS); | ||
108 | fileProgress->reset(); | 121 | fileProgress->reset(); |
122 | |||
123 | //Get parameters | ||
124 | tmp = nReries->text().toInt(&numOk); | ||
125 | if (numOk) | ||
126 | nRetries = tmp; | ||
127 | if (uuidType->currentText() == "FBS") { | ||
128 | use_uuid = UUID_FBS; | ||
129 | len = sizeof(UUID_FBS); | ||
130 | } else if (uuidType->currentText() == "S45") { | ||
131 | use_uuid = UUID_S45; | ||
132 | len = sizeof(UUID_S45); | ||
133 | } else { | ||
134 | use_uuid = UUID_FBS; | ||
135 | len = sizeof(UUID_FBS); | ||
136 | } | ||
137 | |||
109 | if (!cli_connect_uuid(use_uuid, len)) { | 138 | if (!cli_connect_uuid(use_uuid, len)) { |
110 | log("Connection failed"); | 139 | log("Connection failed"); |
111 | errBox("Connection failed"); | 140 | errBox("Connection failed"); |
112 | status("Connection failed"); | 141 | status("Connection failed"); |
113 | return; | 142 | return; |
114 | } | 143 | } |
115 | else { | 144 | else { |
116 | log(QString("Connected to ") + m_device); | 145 | log(QString("Connected to ") + m_device); |
117 | status(QString("Connected to ") + m_device); | 146 | status(QString("Connected to ") + m_device); |
118 | } | 147 | } |
119 | /* List folder */ | 148 | /* List folder */ |
120 | root = new FileListItem(fileList, NULL); | 149 | root = new FileListItem(fileList, NULL); |
121 | dir = obexftp_opendir(client, curdir); | 150 | dir = obexftp_opendir(client, curdir); |
122 | while ((ent = obexftp_readdir(dir)) != NULL) { | 151 | while ((ent = obexftp_readdir(dir)) != NULL) { |
123 | FileListItem* a; //List view item | 152 | FileListItem* a; //List view item |
124 | #if 0 //Causes sigsegv | ||
125 | if (ent->mode != 16877) { | 153 | if (ent->mode != 16877) { |
126 | st = obexftp_stat(client, ent->name); | 154 | fsize = ent->size; |
127 | fsize = st->size; | ||
128 | } | 155 | } |
129 | else | 156 | else |
130 | #endif | ||
131 | fsize = 0; | 157 | fsize = 0; |
132 | log(QString(ent->name) + QString(" ") + | 158 | log(QString(ent->name) + QString(" ") + |
133 | QString::number(ent->mode)); | 159 | QString::number(ent->mode)); |
134 | 160 | ||
135 | a = new FileListItem(fileList, ent, fsize); | 161 | a = new FileListItem(fileList, ent, fsize); |
136 | } | 162 | } |
137 | obexftp_closedir(dir); | 163 | obexftp_closedir(dir); |
138 | } | 164 | } |
139 | 165 | ||
140 | //Error message box | 166 | //Error message box |
141 | int ObexFtpDialog::errBox(QCString msg) | 167 | int ObexFtpDialog::errBox(QCString msg) |
142 | { | 168 | { |
143 | return QMessageBox::critical(this, tr("ObexFTP error"), msg); | 169 | return QMessageBox::critical(this, tr("ObexFTP error"), msg); |
144 | } | 170 | } |
145 | 171 | ||
146 | int ObexFtpDialog::errBox(QString msg) | 172 | int ObexFtpDialog::errBox(QString msg) |
147 | { | 173 | { |
148 | return QMessageBox::critical(this, tr("ObexFTP error"), msg); | 174 | return QMessageBox::critical(this, tr("ObexFTP error"), msg); |
149 | } | 175 | } |
150 | 176 | ||
151 | int ObexFtpDialog::errBox(const char* msg) | 177 | int ObexFtpDialog::errBox(const char* msg) |
152 | { | 178 | { |
153 | return QMessageBox::critical(this, tr("ObexFTP error"), tr(msg)); | 179 | return QMessageBox::critical(this, tr("ObexFTP error"), tr(msg)); |
154 | } | 180 | } |
@@ -201,139 +227,190 @@ void ObexFtpDialog::slotCd(QListViewItem* item) | |||
201 | if (obexftp_setpath(client, curdir, 0) < 0) | 227 | if (obexftp_setpath(client, curdir, 0) < 0) |
202 | log("CD failed"); | 228 | log("CD failed"); |
203 | slotBrowse(); | 229 | slotBrowse(); |
204 | } | 230 | } |
205 | } | 231 | } |
206 | 232 | ||
207 | /* | 233 | /* |
208 | * Get the file | 234 | * Get the file |
209 | */ | 235 | */ |
210 | void ObexFtpDialog::getFile() | 236 | void ObexFtpDialog::getFile() |
211 | { | 237 | { |
212 | FileListItem* file = (FileListItem*)fileList->selectedItem(); | 238 | FileListItem* file = (FileListItem*)fileList->selectedItem(); |
213 | int result; | 239 | int result; |
214 | if (file == NULL) | 240 | if (file == NULL) |
215 | return; | 241 | return; |
216 | file2get = "/"; | 242 | file2get = "/"; |
217 | local = localCurdir; | 243 | local = localCurdir; |
218 | if (local == "") { | 244 | if (local == "") { |
219 | errBox("Select a destination first"); | 245 | errBox("Select a destination first"); |
220 | return; | 246 | return; |
221 | } | 247 | } |
222 | if (local.right(1) != "/") | 248 | if (local.right(1) != "/") |
223 | local += "/"; | 249 | local += "/"; |
224 | if (file->gettype() == IS_FILE) { | 250 | if (file->gettype() == IS_FILE) { |
251 | if (client == NULL) { | ||
252 | errBox("No connection established"); | ||
253 | return; | ||
254 | } | ||
225 | file2get += curdir; | 255 | file2get += curdir; |
226 | if (curdir != "" && curdir.right(1) != "/") | 256 | if (curdir != "" && curdir.right(1) != "/") |
227 | file2get += "/"; | 257 | file2get += "/"; |
228 | file2get += file->text(0); | 258 | file2get += file->text(0); |
229 | local += file->text(0); | 259 | local += file->text(0); |
230 | odebug << "Copy " << file2get << " to " << local << oendl; | 260 | odebug << "Copy " << file2get << " to " << local << oendl; |
231 | progressStatus = 0; | 261 | progressStatus = 0; |
262 | fileProgress->setTotalSteps(file->getsize() / 1024); | ||
232 | fileProgress->reset(); | 263 | fileProgress->reset(); |
233 | status(tr("Receiving file ") + file2get); | 264 | status(tr("Receiving file ") + file2get); |
234 | result = obexftp_get(client, local, file2get); | 265 | result = obexftp_get(client, local, file2get); |
235 | if (result < 0) { | 266 | if (result < 0) { |
236 | log(file2get + QString(" receive ERROR")); | 267 | log(file2get + QString(" receive ERROR")); |
237 | errBox(file2get + QString(" receive ERROR")); | 268 | errBox(file2get + QString(" receive ERROR")); |
238 | status(file2get + QString(" receive ERROR")); | 269 | status(file2get + QString(" receive ERROR")); |
239 | } | 270 | } |
240 | else { | 271 | else { |
241 | log(file2get + QString(" received")); | 272 | log(file2get + QString(" received")); |
242 | status(file2get + QString(" received")); | 273 | status(file2get + QString(" received")); |
243 | destFile->reread(); | 274 | destFile->reread(); |
244 | } | 275 | } |
245 | } | 276 | } |
246 | } | 277 | } |
247 | 278 | ||
279 | /* | ||
280 | * Put the file | ||
281 | */ | ||
282 | void ObexFtpDialog::putFile() | ||
283 | { | ||
284 | int result; //OPeration result | ||
285 | int idx; //Index of a symbol in the string | ||
286 | struct stat localFStat; //Local file information | ||
287 | |||
288 | if (client == NULL) { | ||
289 | errBox("No connection established"); | ||
290 | return; | ||
291 | } | ||
292 | local = destFile->selectedName(); | ||
293 | if (local == "") { | ||
294 | errBox("No file slected"); | ||
295 | return; | ||
296 | } | ||
297 | result = stat(local, &localFStat); | ||
298 | if (result < 0) { | ||
299 | errBox(tr("Wrong file selected ") + local + tr(" ") + | ||
300 | tr(strerror(errno))); | ||
301 | return; | ||
302 | } | ||
303 | idx = local.findRev('/'); | ||
304 | if (idx > 0) { | ||
305 | file2get = local.right(local.length() - idx - 1); | ||
306 | } | ||
307 | else | ||
308 | file2get = local; | ||
309 | |||
310 | odebug << "Copy " << local << " to " << file2get << oendl; | ||
311 | progressStatus = 0; | ||
312 | fileProgress->setTotalSteps(localFStat.st_size / 1024); | ||
313 | fileProgress->reset(); | ||
314 | status(tr("Sending file ") + local); | ||
315 | result = obexftp_put_file(client, local, file2get); | ||
316 | if (result < 0) { | ||
317 | log(local + QString(" send ERROR")); | ||
318 | errBox(local + QString(" send ERROR")); | ||
319 | status(local + QString(" send ERROR")); | ||
320 | } | ||
321 | else { | ||
322 | log(local + QString(" sent")); | ||
323 | status(local + QString(" sent")); | ||
324 | } | ||
325 | } | ||
326 | |||
248 | /* connect with given uuid. re-connect every time */ | 327 | /* connect with given uuid. re-connect every time */ |
249 | int ObexFtpDialog::cli_connect_uuid(const uint8_t *uuid, int uuid_len) | 328 | int ObexFtpDialog::cli_connect_uuid(const uint8_t *uuid, int uuid_len) |
250 | { | 329 | { |
251 | int retry; | 330 | int retry; |
252 | if (client != NULL) | 331 | if (client != NULL) |
253 | return TRUE; | 332 | return TRUE; |
254 | /* Open */ | 333 | /* Open */ |
255 | client = obexftp_open (transport, NULL, info_cb, this); | 334 | client = obexftp_open (transport, NULL, info_cb, this); |
256 | if(client == NULL) { | 335 | if(client == NULL) { |
257 | errBox("Error opening obexftp-client"); | 336 | errBox("Error opening obexftp-client"); |
258 | return FALSE; | 337 | return FALSE; |
259 | } | 338 | } |
260 | if (!use_conn) | 339 | if (!use_conn) |
261 | client->quirks &= ~OBEXFTP_CONN_HEADER; | 340 | client->quirks &= ~OBEXFTP_CONN_HEADER; |
262 | if (!use_path) | 341 | if (!use_path) |
263 | client->quirks &= ~OBEXFTP_SPLIT_SETPATH; | 342 | client->quirks &= ~OBEXFTP_SPLIT_SETPATH; |
264 | for (retry = 0; retry < 3; retry++) { | 343 | for (retry = 0; retry < nRetries; retry++) { |
265 | /* Connect */ | 344 | /* Connect */ |
266 | switch (transport) { | 345 | switch (transport) { |
267 | case OBEX_TRANS_IRDA: | 346 | case OBEX_TRANS_IRDA: |
268 | if (obexftp_connect_uuid(client, NULL, 0, uuid, uuid_len) >= 0) | 347 | if (obexftp_connect_uuid(client, NULL, 0, uuid, uuid_len) >= 0) |
269 | return TRUE; | 348 | return TRUE; |
270 | break; | 349 | break; |
271 | case OBEX_TRANS_BLUETOOTH: | 350 | case OBEX_TRANS_BLUETOOTH: |
272 | if (obexftp_connect_uuid(client, m_device, m_port, | 351 | if (obexftp_connect_uuid(client, m_device, m_port, |
273 | uuid, uuid_len) >= 0) | 352 | uuid, uuid_len) >= 0) |
274 | return TRUE; | 353 | return TRUE; |
275 | break; | 354 | break; |
276 | default: | 355 | default: |
277 | errBox("Transport type unknown"); | 356 | errBox("Transport type unknown"); |
278 | return FALSE; | 357 | return FALSE; |
279 | } | 358 | } |
280 | log(tr("Still trying to connect")); | 359 | log(tr("Still trying to connect")); |
281 | } | 360 | } |
282 | client = NULL; | 361 | client = NULL; |
283 | 362 | ||
284 | return FALSE; | 363 | return FALSE; |
285 | } | 364 | } |
286 | 365 | ||
287 | /* | 366 | /* |
288 | * Put a message to the log window | 367 | * Put a message to the log window |
289 | */ | 368 | */ |
290 | void ObexFtpDialog::log(QString str) | 369 | void ObexFtpDialog::log(QString str) |
291 | { | 370 | { |
292 | browseLog->append(str); | 371 | browseLog->append(str); |
293 | } | 372 | } |
294 | 373 | ||
295 | void ObexFtpDialog::log(QCString str) | 374 | void ObexFtpDialog::log(QCString str) |
296 | { | 375 | { |
297 | browseLog->append(str); | 376 | browseLog->append(str); |
298 | } | 377 | } |
299 | 378 | ||
300 | void ObexFtpDialog::log(QString& str) | 379 | void ObexFtpDialog::log(QString& str) |
301 | { | 380 | { |
302 | browseLog->append(str); | 381 | browseLog->append(str); |
303 | } | 382 | } |
304 | 383 | ||
305 | void ObexFtpDialog::log(const char* str) | 384 | void ObexFtpDialog::log(const char* str) |
306 | { | 385 | { |
307 | browseLog->append(str); | 386 | browseLog->append(str); |
308 | } | 387 | } |
309 | 388 | ||
310 | void ObexFtpDialog::incProgress() | 389 | void ObexFtpDialog::incProgress() |
311 | { | 390 | { |
312 | odebug << "Progress " << progressStatus << oendl; | 391 | if (progressStatus < fileProgress->totalSteps()) |
313 | if (progressStatus < MAX_PROGRESS) { | ||
314 | fileProgress->setProgress(progressStatus++); | 392 | fileProgress->setProgress(progressStatus++); |
315 | } | ||
316 | } | 393 | } |
317 | 394 | ||
318 | void ObexFtpDialog::doneProgress() | 395 | void ObexFtpDialog::doneProgress() |
319 | { | 396 | { |
320 | progressStatus = 0; | 397 | progressStatus = 0; |
321 | fileProgress->reset(); | 398 | fileProgress->reset(); |
322 | } | 399 | } |
323 | 400 | ||
324 | void ObexFtpDialog::updateDir(const QString& newdir) | 401 | void ObexFtpDialog::updateDir(const QString& newdir) |
325 | { | 402 | { |
326 | localCurdir = newdir; | 403 | localCurdir = newdir; |
327 | } | 404 | } |
328 | 405 | ||
329 | /* | 406 | /* |
330 | * Event callback function | 407 | * Event callback function |
331 | */ | 408 | */ |
332 | static void info_cb(int event, const char *msg, int len, void* data) | 409 | static void info_cb(int event, const char *msg, int len, void* data) |
333 | { | 410 | { |
334 | ObexFtpDialog* dlg = (ObexFtpDialog*)data; | 411 | ObexFtpDialog* dlg = (ObexFtpDialog*)data; |
335 | QCString cmsg(msg, len); //Message to display | 412 | QCString cmsg(msg, len); //Message to display |
336 | 413 | ||
337 | switch (event) { | 414 | switch (event) { |
338 | 415 | ||
339 | case OBEXFTP_EV_ERRMSG: | 416 | case OBEXFTP_EV_ERRMSG: |
diff --git a/noncore/net/opietooth/manager/obexftpdialog.h b/noncore/net/opietooth/manager/obexftpdialog.h index b13efe5..7000f61 100644 --- a/noncore/net/opietooth/manager/obexftpdialog.h +++ b/noncore/net/opietooth/manager/obexftpdialog.h | |||
@@ -35,32 +35,34 @@ 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 | int errBox(QCString msg); //Error message box | 39 | int errBox(QCString msg); //Error message box |
40 | int errBox(QString msg); //Error message box | 40 | int errBox(QString msg); //Error message box |
41 | int errBox(const char* msg); //Error message box | 41 | int errBox(const char* msg); //Error message box |
42 | void status(QCString msg); //Text in the status bar | 42 | void status(QCString msg); //Text in the status bar |
43 | void status(QString msg); //Text in the status bar | 43 | void status(QString msg); //Text in the status bar |
44 | void status(const char* msg); //Text in the status bar | 44 | void status(const char* msg); //Text in the status bar |
45 | protected: | 45 | protected: |
46 | QString m_device; //device MAC address | 46 | QString m_device; //device MAC address |
47 | int m_port; //port | 47 | int m_port; //port |
48 | int transport; //transport type | 48 | int transport; //transport type |
49 | bool use_conn; | 49 | bool use_conn; |
50 | bool use_path; | 50 | bool use_path; |
51 | obexftp_client_t* client; //Obex ftp client handler | 51 | obexftp_client_t* client; //Obex ftp client handler |
52 | QString curdir; //Current directory on device | 52 | QString curdir; //Current directory on device |
53 | QString localCurdir; //Local current directory | 53 | QString localCurdir; //Local current directory |
54 | QString file2get; //Remote file name | 54 | QString file2get; //Remote file name |
55 | QString local; //Local file name | 55 | QString local; //Local file name |
56 | int progressStatus; //Progress status | 56 | int progressStatus; //Progress status |
57 | Opie::Ui::OFileSelector* destFile; //Destination file or directory | 57 | Opie::Ui::OFileSelector* destFile; //Destination file or directory |
58 | QVBoxLayout* localLayout; //Window layout | 58 | QVBoxLayout* localLayout; //Window layout |
59 | int nRetries; //Number of retries (on connection) | ||
59 | private slots: | 60 | private slots: |
60 | void slotBrowse(); | 61 | void slotBrowse(); |
61 | void slotCd(QListViewItem* item); | 62 | void slotCd(QListViewItem* item); |
62 | void getFile(); | 63 | void getFile(); |
64 | void putFile(); | ||
63 | void updateDir(const QString& newdir); | 65 | void updateDir(const QString& newdir); |
64 | }; | 66 | }; |
65 | }; | 67 | }; |
66 | #endif | 68 | #endif |
diff --git a/noncore/net/opietooth/manager/obexftpdialogbase.cpp b/noncore/net/opietooth/manager/obexftpdialogbase.cpp index 0640511..dd54b5f 100644 --- a/noncore/net/opietooth/manager/obexftpdialogbase.cpp +++ b/noncore/net/opietooth/manager/obexftpdialogbase.cpp | |||
@@ -1,131 +1,156 @@ | |||
1 | /**************************************************************************** | 1 | /**************************************************************************** |
2 | ** Form implementation generated from reading ui file 'obexftpdialogbase.ui' | 2 | ** Form implementation generated from reading ui file 'obexftpdialogbase.ui' |
3 | ** | 3 | ** |
4 | ** Created: Sun Mar 19 16:47:24 2006 | 4 | ** Created: Tue Mar 21 00:29:33 2006 |
5 | ** by: The User Interface Compiler (uic) | 5 | ** by: The User Interface Compiler (uic) |
6 | ** | 6 | ** |
7 | ** WARNING! All changes made in this file will be lost! | 7 | ** WARNING! All changes made in this file will be lost! |
8 | ****************************************************************************/ | 8 | ****************************************************************************/ |
9 | #include "obexftpdialogbase.h" | 9 | #include "obexftpdialogbase.h" |
10 | 10 | ||
11 | #include <qcombobox.h> | 11 | #include <qcombobox.h> |
12 | #include <qheader.h> | 12 | #include <qheader.h> |
13 | #include <qlabel.h> | 13 | #include <qlabel.h> |
14 | #include <qlineedit.h> | ||
15 | #include <qlistview.h> | 14 | #include <qlistview.h> |
16 | #include <qmultilineedit.h> | 15 | #include <qmultilineedit.h> |
17 | #include <qprogressbar.h> | 16 | #include <qprogressbar.h> |
18 | #include <qpushbutton.h> | 17 | #include <qpushbutton.h> |
18 | #include <qspinbox.h> | ||
19 | #include <qtabwidget.h> | 19 | #include <qtabwidget.h> |
20 | #include <qwidget.h> | 20 | #include <qwidget.h> |
21 | #include <qlayout.h> | 21 | #include <qlayout.h> |
22 | #include <qvariant.h> | 22 | #include <qvariant.h> |
23 | #include <qtooltip.h> | 23 | #include <qtooltip.h> |
24 | #include <qwhatsthis.h> | 24 | #include <qwhatsthis.h> |
25 | 25 | ||
26 | /* | 26 | /* |
27 | * Constructs a ObexFtpDialogBase which is a child of 'parent', with the | 27 | * Constructs a ObexFtpDialogBase which is a child of 'parent', with the |
28 | * name 'name' and widget flags set to 'f' | 28 | * name 'name' and widget flags set to 'f' |
29 | * | 29 | * |
30 | * The dialog will by default be modeless, unless you set 'modal' to | 30 | * The dialog will by default be modeless, unless you set 'modal' to |
31 | * TRUE to construct a modal dialog. | 31 | * TRUE to construct a modal dialog. |
32 | */ | 32 | */ |
33 | ObexFtpDialogBase::ObexFtpDialogBase( QWidget* parent, const char* name, bool modal, WFlags fl ) | 33 | ObexFtpDialogBase::ObexFtpDialogBase( QWidget* parent, const char* name, bool modal, WFlags fl ) |
34 | : QDialog( parent, name, modal, fl ) | 34 | : QDialog( parent, name, modal, fl ) |
35 | { | 35 | { |
36 | if ( !name ) | 36 | if ( !name ) |
37 | setName( "ObexFtpDialogBase" ); | 37 | setName( "ObexFtpDialogBase" ); |
38 | resize( 221, 396 ); | 38 | resize( 267, 312 ); |
39 | setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)7, sizePolicy().hasHeightForWidth() ) ); | 39 | setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)7, sizePolicy().hasHeightForWidth() ) ); |
40 | setCaption( tr( "Browse device" ) ); | 40 | setCaption( tr( "Browse device" ) ); |
41 | ObexFtpDialogBaseLayout = new QVBoxLayout( this ); | 41 | ObexFtpDialogBaseLayout = new QVBoxLayout( this ); |
42 | ObexFtpDialogBaseLayout->setSpacing( 0 ); | 42 | ObexFtpDialogBaseLayout->setSpacing( 0 ); |
43 | ObexFtpDialogBaseLayout->setMargin( 0 ); | 43 | ObexFtpDialogBaseLayout->setMargin( 0 ); |
44 | 44 | ||
45 | obexFtpTab = new QTabWidget( this, "obexFtpTab" ); | 45 | obexFtpTab = new QTabWidget( this, "obexFtpTab" ); |
46 | 46 | ||
47 | files = new QWidget( obexFtpTab, "files" ); | 47 | files = new QWidget( obexFtpTab, "files" ); |
48 | filesLayout = new QVBoxLayout( files ); | 48 | filesLayout = new QVBoxLayout( files ); |
49 | filesLayout->setSpacing( 0 ); | 49 | filesLayout->setSpacing( 0 ); |
50 | filesLayout->setMargin( 0 ); | 50 | filesLayout->setMargin( 0 ); |
51 | 51 | ||
52 | Layout9 = new QVBoxLayout; | 52 | Layout13 = new QGridLayout; |
53 | Layout9->setSpacing( 6 ); | 53 | Layout13->setSpacing( 6 ); |
54 | Layout9->setMargin( 0 ); | 54 | Layout13->setMargin( 0 ); |
55 | 55 | ||
56 | fileList = new QListView( files, "fileList" ); | 56 | fileList = new QListView( files, "fileList" ); |
57 | fileList->addColumn( tr( "Name" ) ); | 57 | fileList->addColumn( tr( "Name" ) ); |
58 | fileList->addColumn( tr( "Size" ) ); | 58 | fileList->addColumn( tr( "Size" ) ); |
59 | Layout9->addWidget( fileList ); | 59 | |
60 | Layout13->addWidget( fileList, 0, 0 ); | ||
60 | 61 | ||
61 | fileProgress = new QProgressBar( files, "fileProgress" ); | 62 | fileProgress = new QProgressBar( files, "fileProgress" ); |
62 | Layout9->addWidget( fileProgress ); | ||
63 | 63 | ||
64 | buttons = new QHBoxLayout; | 64 | Layout13->addWidget( fileProgress, 1, 0 ); |
65 | buttons->setSpacing( 6 ); | ||
66 | buttons->setMargin( 0 ); | ||
67 | 65 | ||
68 | getButton = new QPushButton( files, "getButton" ); | 66 | Layout11 = new QHBoxLayout; |
69 | getButton->setText( tr( "Get file" ) ); | 67 | Layout11->setSpacing( 6 ); |
70 | buttons->addWidget( getButton ); | 68 | Layout11->setMargin( 0 ); |
71 | 69 | ||
72 | browseOK = new QPushButton( files, "browseOK" ); | 70 | browseOK = new QPushButton( files, "browseOK" ); |
73 | browseOK->setText( tr( "Browse" ) ); | 71 | browseOK->setText( tr( "Browse" ) ); |
74 | buttons->addWidget( browseOK ); | 72 | Layout11->addWidget( browseOK ); |
75 | Layout9->addLayout( buttons ); | 73 | |
74 | getButton = new QPushButton( files, "getButton" ); | ||
75 | getButton->setText( tr( "Get file" ) ); | ||
76 | Layout11->addWidget( getButton ); | ||
77 | |||
78 | putButton = new QPushButton( files, "putButton" ); | ||
79 | putButton->setText( tr( "Put file" ) ); | ||
80 | Layout11->addWidget( putButton ); | ||
81 | |||
82 | Layout13->addLayout( Layout11, 2, 0 ); | ||
76 | 83 | ||
77 | statusBar = new QLabel( files, "statusBar" ); | 84 | statusBar = new QLabel( files, "statusBar" ); |
78 | statusBar->setText( tr( "" ) ); | 85 | statusBar->setText( tr( "" ) ); |
79 | Layout9->addWidget( statusBar ); | 86 | |
80 | filesLayout->addLayout( Layout9 ); | 87 | Layout13->addWidget( statusBar, 3, 0 ); |
88 | filesLayout->addLayout( Layout13 ); | ||
81 | obexFtpTab->insertTab( files, tr( "Device" ) ); | 89 | obexFtpTab->insertTab( files, tr( "Device" ) ); |
82 | 90 | ||
83 | localFs = new QWidget( obexFtpTab, "localFs" ); | 91 | localFs = new QWidget( obexFtpTab, "localFs" ); |
84 | obexFtpTab->insertTab( localFs, tr( "Local" ) ); | 92 | obexFtpTab->insertTab( localFs, tr( "Local" ) ); |
85 | 93 | ||
86 | options = new QWidget( obexFtpTab, "options" ); | 94 | options = new QWidget( obexFtpTab, "options" ); |
87 | 95 | ||
88 | connRetries = new QLabel( options, "connRetries" ); | 96 | QWidget* privateLayoutWidget = new QWidget( options, "Layout5" ); |
89 | connRetries->setGeometry( QRect( 10, 45, 100, 16 ) ); | 97 | privateLayoutWidget->setGeometry( QRect( 45, 5, 162, 63 ) ); |
90 | connRetries->setText( tr( "Retry to connect" ) ); | 98 | Layout5 = new QVBoxLayout( privateLayoutWidget ); |
99 | Layout5->setSpacing( 6 ); | ||
100 | Layout5->setMargin( 0 ); | ||
91 | 101 | ||
92 | nReries = new QLineEdit( options, "nReries" ); | 102 | Layout3 = new QHBoxLayout; |
93 | nReries->setGeometry( QRect( 115, 40, 60, 23 ) ); | 103 | Layout3->setSpacing( 6 ); |
104 | Layout3->setMargin( 0 ); | ||
94 | 105 | ||
95 | uuidLabel = new QLabel( options, "uuidLabel" ); | 106 | uuidLabel = new QLabel( privateLayoutWidget, "uuidLabel" ); |
96 | uuidLabel->setGeometry( QRect( 15, 20, 67, 15 ) ); | ||
97 | uuidLabel->setText( tr( "uuid type" ) ); | 107 | uuidLabel->setText( tr( "uuid type" ) ); |
108 | Layout3->addWidget( uuidLabel ); | ||
98 | 109 | ||
99 | uuidType = new QComboBox( FALSE, options, "uuidType" ); | 110 | uuidType = new QComboBox( FALSE, privateLayoutWidget, "uuidType" ); |
100 | uuidType->insertItem( tr( "FBS" ) ); | 111 | uuidType->insertItem( tr( "FBS" ) ); |
101 | uuidType->insertItem( tr( "S45" ) ); | 112 | uuidType->insertItem( tr( "S45" ) ); |
102 | uuidType->setGeometry( QRect( 85, 10, 100, 30 ) ); | 113 | Layout3->addWidget( uuidType ); |
114 | Layout5->addLayout( Layout3 ); | ||
115 | |||
116 | Layout4 = new QHBoxLayout; | ||
117 | Layout4->setSpacing( 6 ); | ||
118 | Layout4->setMargin( 0 ); | ||
119 | |||
120 | connRetries = new QLabel( privateLayoutWidget, "connRetries" ); | ||
121 | connRetries->setText( tr( "Retry to connect" ) ); | ||
122 | Layout4->addWidget( connRetries ); | ||
123 | |||
124 | nReries = new QSpinBox( privateLayoutWidget, "nReries" ); | ||
125 | nReries->setButtonSymbols( QSpinBox::PlusMinus ); | ||
126 | Layout4->addWidget( nReries ); | ||
127 | Layout5->addLayout( Layout4 ); | ||
103 | obexFtpTab->insertTab( options, tr( "Options" ) ); | 128 | obexFtpTab->insertTab( options, tr( "Options" ) ); |
104 | 129 | ||
105 | browse = new QWidget( obexFtpTab, "browse" ); | 130 | browse = new QWidget( obexFtpTab, "browse" ); |
106 | browseLayout = new QHBoxLayout( browse ); | 131 | browseLayout = new QHBoxLayout( browse ); |
107 | browseLayout->setSpacing( 0 ); | 132 | browseLayout->setSpacing( 0 ); |
108 | browseLayout->setMargin( 0 ); | 133 | browseLayout->setMargin( 0 ); |
109 | 134 | ||
110 | browseLog = new QMultiLineEdit( browse, "browseLog" ); | 135 | browseLog = new QMultiLineEdit( browse, "browseLog" ); |
111 | browseLayout->addWidget( browseLog ); | 136 | browseLayout->addWidget( browseLog ); |
112 | obexFtpTab->insertTab( browse, tr( "Log" ) ); | 137 | obexFtpTab->insertTab( browse, tr( "Log" ) ); |
113 | ObexFtpDialogBaseLayout->addWidget( obexFtpTab ); | 138 | ObexFtpDialogBaseLayout->addWidget( obexFtpTab ); |
114 | 139 | ||
115 | // tab order | 140 | // tab order |
116 | setTabOrder( obexFtpTab, fileList ); | 141 | setTabOrder( obexFtpTab, fileList ); |
117 | setTabOrder( fileList, getButton ); | 142 | setTabOrder( fileList, browseOK ); |
118 | setTabOrder( getButton, browseOK ); | 143 | setTabOrder( browseOK, getButton ); |
119 | setTabOrder( browseOK, uuidType ); | 144 | setTabOrder( getButton, putButton ); |
120 | setTabOrder( uuidType, nReries ); | 145 | setTabOrder( putButton, uuidType ); |
121 | setTabOrder( nReries, browseLog ); | 146 | setTabOrder( uuidType, browseLog ); |
122 | } | 147 | } |
123 | 148 | ||
124 | /* | 149 | /* |
125 | * Destroys the object and frees any allocated resources | 150 | * Destroys the object and frees any allocated resources |
126 | */ | 151 | */ |
127 | ObexFtpDialogBase::~ObexFtpDialogBase() | 152 | ObexFtpDialogBase::~ObexFtpDialogBase() |
128 | { | 153 | { |
129 | // no need to delete child widgets, Qt does it all for us | 154 | // no need to delete child widgets, Qt does it all for us |
130 | } | 155 | } |
131 | 156 | ||
diff --git a/noncore/net/opietooth/manager/obexftpdialogbase.h b/noncore/net/opietooth/manager/obexftpdialogbase.h index 3a4937a..32a313d 100644 --- a/noncore/net/opietooth/manager/obexftpdialogbase.h +++ b/noncore/net/opietooth/manager/obexftpdialogbase.h | |||
@@ -1,60 +1,64 @@ | |||
1 | /**************************************************************************** | 1 | /**************************************************************************** |
2 | ** Form interface generated from reading ui file 'obexftpdialogbase.ui' | 2 | ** Form interface generated from reading ui file 'obexftpdialogbase.ui' |
3 | ** | 3 | ** |
4 | ** Created: Sun Mar 19 16:46:33 2006 | 4 | ** Created: Tue Mar 21 00:28:12 2006 |
5 | ** by: The User Interface Compiler (uic) | 5 | ** by: The User Interface Compiler (uic) |
6 | ** | 6 | ** |
7 | ** WARNING! All changes made in this file will be lost! | 7 | ** WARNING! All changes made in this file will be lost! |
8 | ****************************************************************************/ | 8 | ****************************************************************************/ |
9 | #ifndef OBEXFTPDIALOGBASE_H | 9 | #ifndef OBEXFTPDIALOGBASE_H |
10 | #define OBEXFTPDIALOGBASE_H | 10 | #define OBEXFTPDIALOGBASE_H |
11 | 11 | ||
12 | #include <qvariant.h> | 12 | #include <qvariant.h> |
13 | #include <qdialog.h> | 13 | #include <qdialog.h> |
14 | class QVBoxLayout; | 14 | class QVBoxLayout; |
15 | class QHBoxLayout; | 15 | class QHBoxLayout; |
16 | class QGridLayout; | 16 | class QGridLayout; |
17 | class QComboBox; | 17 | class QComboBox; |
18 | class QLabel; | 18 | class QLabel; |
19 | class QLineEdit; | ||
20 | class QListView; | 19 | class QListView; |
21 | class QListViewItem; | 20 | class QListViewItem; |
22 | class QMultiLineEdit; | 21 | class QMultiLineEdit; |
23 | class QProgressBar; | 22 | class QProgressBar; |
24 | class QPushButton; | 23 | class QPushButton; |
24 | class QSpinBox; | ||
25 | class QTabWidget; | 25 | class QTabWidget; |
26 | class QWidget; | 26 | class QWidget; |
27 | 27 | ||
28 | class ObexFtpDialogBase : public QDialog | 28 | class ObexFtpDialogBase : public QDialog |
29 | { | 29 | { |
30 | Q_OBJECT | 30 | Q_OBJECT |
31 | 31 | ||
32 | public: | 32 | public: |
33 | ObexFtpDialogBase( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 ); | 33 | ObexFtpDialogBase( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 ); |
34 | ~ObexFtpDialogBase(); | 34 | ~ObexFtpDialogBase(); |
35 | 35 | ||
36 | QTabWidget* obexFtpTab; | 36 | QTabWidget* obexFtpTab; |
37 | QWidget* files; | 37 | QWidget* files; |
38 | QListView* fileList; | 38 | QListView* fileList; |
39 | QProgressBar* fileProgress; | 39 | QProgressBar* fileProgress; |
40 | QPushButton* getButton; | ||
41 | QPushButton* browseOK; | 40 | QPushButton* browseOK; |
41 | QPushButton* getButton; | ||
42 | QPushButton* putButton; | ||
42 | QLabel* statusBar; | 43 | QLabel* statusBar; |
43 | QWidget* localFs; | 44 | QWidget* localFs; |
44 | QWidget* options; | 45 | QWidget* options; |
45 | QLabel* connRetries; | ||
46 | QLineEdit* nReries; | ||
47 | QLabel* uuidLabel; | 46 | QLabel* uuidLabel; |
48 | QComboBox* uuidType; | 47 | QComboBox* uuidType; |
48 | QLabel* connRetries; | ||
49 | QSpinBox* nReries; | ||
49 | QWidget* browse; | 50 | QWidget* browse; |
50 | QMultiLineEdit* browseLog; | 51 | QMultiLineEdit* browseLog; |
51 | 52 | ||
52 | protected: | 53 | protected: |
53 | QVBoxLayout* ObexFtpDialogBaseLayout; | 54 | QVBoxLayout* ObexFtpDialogBaseLayout; |
54 | QVBoxLayout* filesLayout; | 55 | QVBoxLayout* filesLayout; |
55 | QVBoxLayout* Layout9; | 56 | QGridLayout* Layout13; |
56 | QHBoxLayout* buttons; | 57 | QHBoxLayout* Layout11; |
58 | QVBoxLayout* Layout5; | ||
59 | QHBoxLayout* Layout3; | ||
60 | QHBoxLayout* Layout4; | ||
57 | QHBoxLayout* browseLayout; | 61 | QHBoxLayout* browseLayout; |
58 | }; | 62 | }; |
59 | 63 | ||
60 | #endif // OBEXFTPDIALOGBASE_H | 64 | #endif // OBEXFTPDIALOGBASE_H |
diff --git a/noncore/net/opietooth/manager/obexftpdialogbase.ui b/noncore/net/opietooth/manager/obexftpdialogbase.ui index 86e87e4..b372b9d 100644 --- a/noncore/net/opietooth/manager/obexftpdialogbase.ui +++ b/noncore/net/opietooth/manager/obexftpdialogbase.ui | |||
@@ -1,39 +1,39 @@ | |||
1 | <!DOCTYPE UI><UI> | 1 | <!DOCTYPE UI><UI> |
2 | <class>ObexFtpDialogBase</class> | 2 | <class>ObexFtpDialogBase</class> |
3 | <widget> | 3 | <widget> |
4 | <class>QDialog</class> | 4 | <class>QDialog</class> |
5 | <property stdset="1"> | 5 | <property stdset="1"> |
6 | <name>name</name> | 6 | <name>name</name> |
7 | <cstring>ObexFtpDialogBase</cstring> | 7 | <cstring>ObexFtpDialogBase</cstring> |
8 | </property> | 8 | </property> |
9 | <property stdset="1"> | 9 | <property stdset="1"> |
10 | <name>geometry</name> | 10 | <name>geometry</name> |
11 | <rect> | 11 | <rect> |
12 | <x>0</x> | 12 | <x>0</x> |
13 | <y>0</y> | 13 | <y>0</y> |
14 | <width>221</width> | 14 | <width>267</width> |
15 | <height>396</height> | 15 | <height>312</height> |
16 | </rect> | 16 | </rect> |
17 | </property> | 17 | </property> |
18 | <property stdset="1"> | 18 | <property stdset="1"> |
19 | <name>sizePolicy</name> | 19 | <name>sizePolicy</name> |
20 | <sizepolicy> | 20 | <sizepolicy> |
21 | <hsizetype>7</hsizetype> | 21 | <hsizetype>7</hsizetype> |
22 | <vsizetype>7</vsizetype> | 22 | <vsizetype>7</vsizetype> |
23 | </sizepolicy> | 23 | </sizepolicy> |
24 | </property> | 24 | </property> |
25 | <property stdset="1"> | 25 | <property stdset="1"> |
26 | <name>caption</name> | 26 | <name>caption</name> |
27 | <string>Browse device</string> | 27 | <string>Browse device</string> |
28 | </property> | 28 | </property> |
29 | <property> | 29 | <property> |
30 | <name>layoutMargin</name> | 30 | <name>layoutMargin</name> |
31 | </property> | 31 | </property> |
32 | <property> | 32 | <property> |
33 | <name>layoutSpacing</name> | 33 | <name>layoutSpacing</name> |
34 | </property> | 34 | </property> |
35 | <vbox> | 35 | <vbox> |
36 | <property stdset="1"> | 36 | <property stdset="1"> |
37 | <name>margin</name> | 37 | <name>margin</name> |
38 | <number>0</number> | 38 | <number>0</number> |
39 | </property> | 39 | </property> |
@@ -55,278 +55,317 @@ | |||
55 | </property> | 55 | </property> |
56 | <widget> | 56 | <widget> |
57 | <class>QWidget</class> | 57 | <class>QWidget</class> |
58 | <property stdset="1"> | 58 | <property stdset="1"> |
59 | <name>name</name> | 59 | <name>name</name> |
60 | <cstring>files</cstring> | 60 | <cstring>files</cstring> |
61 | </property> | 61 | </property> |
62 | <attribute> | 62 | <attribute> |
63 | <name>title</name> | 63 | <name>title</name> |
64 | <string>Device</string> | 64 | <string>Device</string> |
65 | </attribute> | 65 | </attribute> |
66 | <vbox> | 66 | <vbox> |
67 | <property stdset="1"> | 67 | <property stdset="1"> |
68 | <name>margin</name> | 68 | <name>margin</name> |
69 | <number>0</number> | 69 | <number>0</number> |
70 | </property> | 70 | </property> |
71 | <property stdset="1"> | 71 | <property stdset="1"> |
72 | <name>spacing</name> | 72 | <name>spacing</name> |
73 | <number>0</number> | 73 | <number>0</number> |
74 | </property> | 74 | </property> |
75 | <widget> | 75 | <widget> |
76 | <class>QLayoutWidget</class> | 76 | <class>QLayoutWidget</class> |
77 | <property stdset="1"> | 77 | <property stdset="1"> |
78 | <name>name</name> | 78 | <name>name</name> |
79 | <cstring>Layout9</cstring> | 79 | <cstring>Layout13</cstring> |
80 | </property> | 80 | </property> |
81 | <vbox> | 81 | <grid> |
82 | <property stdset="1"> | 82 | <property stdset="1"> |
83 | <name>margin</name> | 83 | <name>margin</name> |
84 | <number>0</number> | 84 | <number>0</number> |
85 | </property> | 85 | </property> |
86 | <property stdset="1"> | 86 | <property stdset="1"> |
87 | <name>spacing</name> | 87 | <name>spacing</name> |
88 | <number>6</number> | 88 | <number>6</number> |
89 | </property> | 89 | </property> |
90 | <widget> | 90 | <widget row="0" column="0" > |
91 | <class>QListView</class> | 91 | <class>QListView</class> |
92 | <column> | 92 | <column> |
93 | <property> | 93 | <property> |
94 | <name>text</name> | 94 | <name>text</name> |
95 | <string>Name</string> | 95 | <string>Name</string> |
96 | </property> | 96 | </property> |
97 | <property> | 97 | <property> |
98 | <name>clickable</name> | 98 | <name>clickable</name> |
99 | <bool>true</bool> | 99 | <bool>true</bool> |
100 | </property> | 100 | </property> |
101 | <property> | 101 | <property> |
102 | <name>resizeable</name> | 102 | <name>resizeable</name> |
103 | <bool>true</bool> | 103 | <bool>true</bool> |
104 | </property> | 104 | </property> |
105 | </column> | 105 | </column> |
106 | <column> | 106 | <column> |
107 | <property> | 107 | <property> |
108 | <name>text</name> | 108 | <name>text</name> |
109 | <string>Size</string> | 109 | <string>Size</string> |
110 | </property> | 110 | </property> |
111 | <property> | 111 | <property> |
112 | <name>clickable</name> | 112 | <name>clickable</name> |
113 | <bool>true</bool> | 113 | <bool>true</bool> |
114 | </property> | 114 | </property> |
115 | <property> | 115 | <property> |
116 | <name>resizeable</name> | 116 | <name>resizeable</name> |
117 | <bool>true</bool> | 117 | <bool>true</bool> |
118 | </property> | 118 | </property> |
119 | </column> | 119 | </column> |
120 | <property stdset="1"> | 120 | <property stdset="1"> |
121 | <name>name</name> | 121 | <name>name</name> |
122 | <cstring>fileList</cstring> | 122 | <cstring>fileList</cstring> |
123 | </property> | 123 | </property> |
124 | </widget> | 124 | </widget> |
125 | <widget> | 125 | <widget row="1" column="0" > |
126 | <class>QProgressBar</class> | 126 | <class>QProgressBar</class> |
127 | <property stdset="1"> | 127 | <property stdset="1"> |
128 | <name>name</name> | 128 | <name>name</name> |
129 | <cstring>fileProgress</cstring> | 129 | <cstring>fileProgress</cstring> |
130 | </property> | 130 | </property> |
131 | </widget> | 131 | </widget> |
132 | <widget> | 132 | <widget row="2" column="0" > |
133 | <class>QLayoutWidget</class> | 133 | <class>QLayoutWidget</class> |
134 | <property stdset="1"> | 134 | <property stdset="1"> |
135 | <name>name</name> | 135 | <name>name</name> |
136 | <cstring>buttons</cstring> | 136 | <cstring>Layout11</cstring> |
137 | </property> | 137 | </property> |
138 | <hbox> | 138 | <hbox> |
139 | <property stdset="1"> | 139 | <property stdset="1"> |
140 | <name>margin</name> | 140 | <name>margin</name> |
141 | <number>0</number> | 141 | <number>0</number> |
142 | </property> | 142 | </property> |
143 | <property stdset="1"> | 143 | <property stdset="1"> |
144 | <name>spacing</name> | 144 | <name>spacing</name> |
145 | <number>6</number> | 145 | <number>6</number> |
146 | </property> | 146 | </property> |
147 | <widget> | 147 | <widget> |
148 | <class>QPushButton</class> | 148 | <class>QPushButton</class> |
149 | <property stdset="1"> | 149 | <property stdset="1"> |
150 | <name>name</name> | 150 | <name>name</name> |
151 | <cstring>browseOK</cstring> | ||
152 | </property> | ||
153 | <property stdset="1"> | ||
154 | <name>text</name> | ||
155 | <string>Browse</string> | ||
156 | </property> | ||
157 | </widget> | ||
158 | <widget> | ||
159 | <class>QPushButton</class> | ||
160 | <property stdset="1"> | ||
161 | <name>name</name> | ||
151 | <cstring>getButton</cstring> | 162 | <cstring>getButton</cstring> |
152 | </property> | 163 | </property> |
153 | <property stdset="1"> | 164 | <property stdset="1"> |
154 | <name>text</name> | 165 | <name>text</name> |
155 | <string>Get file</string> | 166 | <string>Get file</string> |
156 | </property> | 167 | </property> |
157 | </widget> | 168 | </widget> |
158 | <widget> | 169 | <widget> |
159 | <class>QPushButton</class> | 170 | <class>QPushButton</class> |
160 | <property stdset="1"> | 171 | <property stdset="1"> |
161 | <name>name</name> | 172 | <name>name</name> |
162 | <cstring>browseOK</cstring> | 173 | <cstring>putButton</cstring> |
163 | </property> | 174 | </property> |
164 | <property stdset="1"> | 175 | <property stdset="1"> |
165 | <name>text</name> | 176 | <name>text</name> |
166 | <string>Browse</string> | 177 | <string>Put file</string> |
167 | </property> | 178 | </property> |
168 | </widget> | 179 | </widget> |
169 | </hbox> | 180 | </hbox> |
170 | </widget> | 181 | </widget> |
171 | <widget> | 182 | <widget row="3" column="0" > |
172 | <class>QLabel</class> | 183 | <class>QLabel</class> |
173 | <property stdset="1"> | 184 | <property stdset="1"> |
174 | <name>name</name> | 185 | <name>name</name> |
175 | <cstring>statusBar</cstring> | 186 | <cstring>statusBar</cstring> |
176 | </property> | 187 | </property> |
177 | <property stdset="1"> | 188 | <property stdset="1"> |
178 | <name>text</name> | 189 | <name>text</name> |
179 | <string></string> | 190 | <string></string> |
180 | </property> | 191 | </property> |
181 | </widget> | 192 | </widget> |
182 | </vbox> | 193 | </grid> |
183 | </widget> | 194 | </widget> |
184 | </vbox> | 195 | </vbox> |
185 | </widget> | 196 | </widget> |
186 | <widget> | 197 | <widget> |
187 | <class>QWidget</class> | 198 | <class>QWidget</class> |
188 | <property stdset="1"> | 199 | <property stdset="1"> |
189 | <name>name</name> | 200 | <name>name</name> |
190 | <cstring>localFs</cstring> | 201 | <cstring>localFs</cstring> |
191 | </property> | 202 | </property> |
192 | <attribute> | 203 | <attribute> |
193 | <name>title</name> | 204 | <name>title</name> |
194 | <string>Local</string> | 205 | <string>Local</string> |
195 | </attribute> | 206 | </attribute> |
196 | </widget> | 207 | </widget> |
197 | <widget> | 208 | <widget> |
198 | <class>QWidget</class> | 209 | <class>QWidget</class> |
199 | <property stdset="1"> | 210 | <property stdset="1"> |
200 | <name>name</name> | 211 | <name>name</name> |
201 | <cstring>options</cstring> | 212 | <cstring>options</cstring> |
202 | </property> | 213 | </property> |
203 | <attribute> | 214 | <attribute> |
204 | <name>title</name> | 215 | <name>title</name> |
205 | <string>Options</string> | 216 | <string>Options</string> |
206 | </attribute> | 217 | </attribute> |
207 | <widget> | 218 | <widget> |
208 | <class>QLabel</class> | 219 | <class>QLayoutWidget</class> |
209 | <property stdset="1"> | ||
210 | <name>name</name> | ||
211 | <cstring>connRetries</cstring> | ||
212 | </property> | ||
213 | <property stdset="1"> | ||
214 | <name>geometry</name> | ||
215 | <rect> | ||
216 | <x>10</x> | ||
217 | <y>45</y> | ||
218 | <width>100</width> | ||
219 | <height>16</height> | ||
220 | </rect> | ||
221 | </property> | ||
222 | <property stdset="1"> | ||
223 | <name>text</name> | ||
224 | <string>Retry to connect</string> | ||
225 | </property> | ||
226 | </widget> | ||
227 | <widget> | ||
228 | <class>QLineEdit</class> | ||
229 | <property stdset="1"> | 220 | <property stdset="1"> |
230 | <name>name</name> | 221 | <name>name</name> |
231 | <cstring>nReries</cstring> | 222 | <cstring>Layout5</cstring> |
232 | </property> | 223 | </property> |
233 | <property stdset="1"> | 224 | <property stdset="1"> |
234 | <name>geometry</name> | 225 | <name>geometry</name> |
235 | <rect> | 226 | <rect> |
236 | <x>115</x> | 227 | <x>45</x> |
237 | <y>40</y> | 228 | <y>5</y> |
238 | <width>60</width> | 229 | <width>162</width> |
239 | <height>23</height> | 230 | <height>63</height> |
240 | </rect> | 231 | </rect> |
241 | </property> | 232 | </property> |
242 | </widget> | 233 | <vbox> |
243 | <widget> | 234 | <property stdset="1"> |
244 | <class>QLabel</class> | 235 | <name>margin</name> |
245 | <property stdset="1"> | 236 | <number>0</number> |
246 | <name>name</name> | ||
247 | <cstring>uuidLabel</cstring> | ||
248 | </property> | ||
249 | <property stdset="1"> | ||
250 | <name>geometry</name> | ||
251 | <rect> | ||
252 | <x>15</x> | ||
253 | <y>20</y> | ||
254 | <width>67</width> | ||
255 | <height>15</height> | ||
256 | </rect> | ||
257 | </property> | ||
258 | <property stdset="1"> | ||
259 | <name>text</name> | ||
260 | <string>uuid type</string> | ||
261 | </property> | ||
262 | </widget> | ||
263 | <widget> | ||
264 | <class>QComboBox</class> | ||
265 | <item> | ||
266 | <property> | ||
267 | <name>text</name> | ||
268 | <string>FBS</string> | ||
269 | </property> | 237 | </property> |
270 | </item> | 238 | <property stdset="1"> |
271 | <item> | 239 | <name>spacing</name> |
272 | <property> | 240 | <number>6</number> |
273 | <name>text</name> | ||
274 | <string>S45</string> | ||
275 | </property> | 241 | </property> |
276 | </item> | 242 | <widget> |
277 | <property stdset="1"> | 243 | <class>QLayoutWidget</class> |
278 | <name>name</name> | 244 | <property stdset="1"> |
279 | <cstring>uuidType</cstring> | 245 | <name>name</name> |
280 | </property> | 246 | <cstring>Layout3</cstring> |
281 | <property stdset="1"> | 247 | </property> |
282 | <name>geometry</name> | 248 | <hbox> |
283 | <rect> | 249 | <property stdset="1"> |
284 | <x>85</x> | 250 | <name>margin</name> |
285 | <y>10</y> | 251 | <number>0</number> |
286 | <width>100</width> | 252 | </property> |
287 | <height>30</height> | 253 | <property stdset="1"> |
288 | </rect> | 254 | <name>spacing</name> |
289 | </property> | 255 | <number>6</number> |
256 | </property> | ||
257 | <widget> | ||
258 | <class>QLabel</class> | ||
259 | <property stdset="1"> | ||
260 | <name>name</name> | ||
261 | <cstring>uuidLabel</cstring> | ||
262 | </property> | ||
263 | <property stdset="1"> | ||
264 | <name>text</name> | ||
265 | <string>uuid type</string> | ||
266 | </property> | ||
267 | </widget> | ||
268 | <widget> | ||
269 | <class>QComboBox</class> | ||
270 | <item> | ||
271 | <property> | ||
272 | <name>text</name> | ||
273 | <string>FBS</string> | ||
274 | </property> | ||
275 | </item> | ||
276 | <item> | ||
277 | <property> | ||
278 | <name>text</name> | ||
279 | <string>S45</string> | ||
280 | </property> | ||
281 | </item> | ||
282 | <property stdset="1"> | ||
283 | <name>name</name> | ||
284 | <cstring>uuidType</cstring> | ||
285 | </property> | ||
286 | </widget> | ||
287 | </hbox> | ||
288 | </widget> | ||
289 | <widget> | ||
290 | <class>QLayoutWidget</class> | ||
291 | <property stdset="1"> | ||
292 | <name>name</name> | ||
293 | <cstring>Layout4</cstring> | ||
294 | </property> | ||
295 | <hbox> | ||
296 | <property stdset="1"> | ||
297 | <name>margin</name> | ||
298 | <number>0</number> | ||
299 | </property> | ||
300 | <property stdset="1"> | ||
301 | <name>spacing</name> | ||
302 | <number>6</number> | ||
303 | </property> | ||
304 | <widget> | ||
305 | <class>QLabel</class> | ||
306 | <property stdset="1"> | ||
307 | <name>name</name> | ||
308 | <cstring>connRetries</cstring> | ||
309 | </property> | ||
310 | <property stdset="1"> | ||
311 | <name>text</name> | ||
312 | <string>Retry to connect</string> | ||
313 | </property> | ||
314 | </widget> | ||
315 | <widget> | ||
316 | <class>QSpinBox</class> | ||
317 | <property stdset="1"> | ||
318 | <name>name</name> | ||
319 | <cstring>nReries</cstring> | ||
320 | </property> | ||
321 | <property stdset="1"> | ||
322 | <name>buttonSymbols</name> | ||
323 | <enum>PlusMinus</enum> | ||
324 | </property> | ||
325 | </widget> | ||
326 | </hbox> | ||
327 | </widget> | ||
328 | </vbox> | ||
290 | </widget> | 329 | </widget> |
291 | </widget> | 330 | </widget> |
292 | <widget> | 331 | <widget> |
293 | <class>QWidget</class> | 332 | <class>QWidget</class> |
294 | <property stdset="1"> | 333 | <property stdset="1"> |
295 | <name>name</name> | 334 | <name>name</name> |
296 | <cstring>browse</cstring> | 335 | <cstring>browse</cstring> |
297 | </property> | 336 | </property> |
298 | <attribute> | 337 | <attribute> |
299 | <name>title</name> | 338 | <name>title</name> |
300 | <string>Log</string> | 339 | <string>Log</string> |
301 | </attribute> | 340 | </attribute> |
302 | <hbox> | 341 | <hbox> |
303 | <property stdset="1"> | 342 | <property stdset="1"> |
304 | <name>margin</name> | 343 | <name>margin</name> |
305 | <number>0</number> | 344 | <number>0</number> |
306 | </property> | 345 | </property> |
307 | <property stdset="1"> | 346 | <property stdset="1"> |
308 | <name>spacing</name> | 347 | <name>spacing</name> |
309 | <number>0</number> | 348 | <number>0</number> |
310 | </property> | 349 | </property> |
311 | <widget> | 350 | <widget> |
312 | <class>QMultiLineEdit</class> | 351 | <class>QMultiLineEdit</class> |
313 | <property stdset="1"> | 352 | <property stdset="1"> |
314 | <name>name</name> | 353 | <name>name</name> |
315 | <cstring>browseLog</cstring> | 354 | <cstring>browseLog</cstring> |
316 | </property> | 355 | </property> |
317 | </widget> | 356 | </widget> |
318 | </hbox> | 357 | </hbox> |
319 | </widget> | 358 | </widget> |
320 | </widget> | 359 | </widget> |
321 | </vbox> | 360 | </vbox> |
322 | </widget> | 361 | </widget> |
323 | <tabstops> | 362 | <tabstops> |
324 | <tabstop>obexFtpTab</tabstop> | 363 | <tabstop>obexFtpTab</tabstop> |
325 | <tabstop>fileList</tabstop> | 364 | <tabstop>fileList</tabstop> |
326 | <tabstop>getButton</tabstop> | ||
327 | <tabstop>browseOK</tabstop> | 365 | <tabstop>browseOK</tabstop> |
366 | <tabstop>getButton</tabstop> | ||
367 | <tabstop>putButton</tabstop> | ||
328 | <tabstop>uuidType</tabstop> | 368 | <tabstop>uuidType</tabstop> |
329 | <tabstop>nReries</tabstop> | ||
330 | <tabstop>browseLog</tabstop> | 369 | <tabstop>browseLog</tabstop> |
331 | </tabstops> | 370 | </tabstops> |
332 | </UI> | 371 | </UI> |