summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/opietooth/manager/obexftpdialog.cpp99
-rw-r--r--noncore/net/opietooth/manager/obexftpdialog.h2
-rw-r--r--noncore/net/opietooth/manager/obexftpdialogbase.cpp89
-rw-r--r--noncore/net/opietooth/manager/obexftpdialogbase.h18
-rw-r--r--noncore/net/opietooth/manager/obexftpdialogbase.ui211
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
32using namespace Opie::Core; 38using namespace Opie::Core;
33using namespace Opie::Ui; 39using namespace Opie::Ui;
34 40
35using namespace OpieTooth; 41using namespace OpieTooth;
36 42
37#define MAX_PROGRESS 14 //Maximal progress bar 43#define MAX_PROGRESS 14 //Maximal progress bar
38 44
39static void info_cb(int event, const char *msg, int len, void* data); 45static 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 */
46ObexFtpDialog::ObexFtpDialog(const QString& device, int port, 52ObexFtpDialog::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
82ObexFtpDialog::~ObexFtpDialog() 93ObexFtpDialog::~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 */
93void ObexFtpDialog::slotBrowse() 104void 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
141int ObexFtpDialog::errBox(QCString msg) 167int 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
146int ObexFtpDialog::errBox(QString msg) 172int 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
151int ObexFtpDialog::errBox(const char* msg) 177int 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 */
210void ObexFtpDialog::getFile() 236void 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 */
282void 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 */
249int ObexFtpDialog::cli_connect_uuid(const uint8_t *uuid, int uuid_len) 328int 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 */
290void ObexFtpDialog::log(QString str) 369void ObexFtpDialog::log(QString str)
291{ 370{
292 browseLog->append(str); 371 browseLog->append(str);
293} 372}
294 373
295void ObexFtpDialog::log(QCString str) 374void ObexFtpDialog::log(QCString str)
296{ 375{
297 browseLog->append(str); 376 browseLog->append(str);
298} 377}
299 378
300void ObexFtpDialog::log(QString& str) 379void ObexFtpDialog::log(QString& str)
301{ 380{
302 browseLog->append(str); 381 browseLog->append(str);
303} 382}
304 383
305void ObexFtpDialog::log(const char* str) 384void ObexFtpDialog::log(const char* str)
306{ 385{
307 browseLog->append(str); 386 browseLog->append(str);
308} 387}
309 388
310void ObexFtpDialog::incProgress() 389void 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
318void ObexFtpDialog::doneProgress() 395void ObexFtpDialog::doneProgress()
319{ 396{
320 progressStatus = 0; 397 progressStatus = 0;
321 fileProgress->reset(); 398 fileProgress->reset();
322} 399}
323 400
324void ObexFtpDialog::updateDir(const QString& newdir) 401void 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 */
332static void info_cb(int event, const char *msg, int len, void* data) 409static 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 */
33ObexFtpDialogBase::ObexFtpDialogBase( QWidget* parent, const char* name, bool modal, WFlags fl ) 33ObexFtpDialogBase::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 */
127ObexFtpDialogBase::~ObexFtpDialogBase() 152ObexFtpDialogBase::~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>
14class QVBoxLayout; 14class QVBoxLayout;
15class QHBoxLayout; 15class QHBoxLayout;
16class QGridLayout; 16class QGridLayout;
17class QComboBox; 17class QComboBox;
18class QLabel; 18class QLabel;
19class QLineEdit;
20class QListView; 19class QListView;
21class QListViewItem; 20class QListViewItem;
22class QMultiLineEdit; 21class QMultiLineEdit;
23class QProgressBar; 22class QProgressBar;
24class QPushButton; 23class QPushButton;
24class QSpinBox;
25class QTabWidget; 25class QTabWidget;
26class QWidget; 26class QWidget;
27 27
28class ObexFtpDialogBase : public QDialog 28class ObexFtpDialogBase : public QDialog
29{ 29{
30 Q_OBJECT 30 Q_OBJECT
31 31
32public: 32public:
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
52protected: 53protected:
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>