-rw-r--r-- | noncore/net/opieftp/opieftp.cpp | 166 | ||||
-rw-r--r-- | noncore/net/opieftp/opieftp.h | 6 |
2 files changed, 136 insertions, 36 deletions
diff --git a/noncore/net/opieftp/opieftp.cpp b/noncore/net/opieftp/opieftp.cpp index 919649e..fb57193 100644 --- a/noncore/net/opieftp/opieftp.cpp +++ b/noncore/net/opieftp/opieftp.cpp | |||
@@ -78,4 +78,7 @@ OpieFtp::OpieFtp( ) | |||
78 | 78 | ||
79 | QPEMenuBar *menuBar = new QPEMenuBar(this); | 79 | QPEMenuBar *menuBar = new QPEMenuBar(this); |
80 | // QPEToolBar *menuBar = new QPEToolBar(this); | ||
81 | // menuBar->setHorizontalStretchable( TRUE ); | ||
82 | |||
80 | connectionMenu = new QPopupMenu( this ); | 83 | connectionMenu = new QPopupMenu( this ); |
81 | localMenu = new QPopupMenu( this ); | 84 | localMenu = new QPopupMenu( this ); |
@@ -83,5 +86,5 @@ OpieFtp::OpieFtp( ) | |||
83 | tabMenu = new QPopupMenu( this ); | 86 | tabMenu = new QPopupMenu( this ); |
84 | 87 | ||
85 | layout->addMultiCellWidget( menuBar, 0, 0, 0, 3 ); | 88 | layout->addMultiCellWidget( menuBar, 0, 0, 0, 2 ); |
86 | 89 | ||
87 | menuBar->insertItem( tr( "Connection" ), connectionMenu); | 90 | menuBar->insertItem( tr( "Connection" ), connectionMenu); |
@@ -114,6 +117,27 @@ OpieFtp::OpieFtp( ) | |||
114 | tabMenu->setCheckable(TRUE); | 117 | tabMenu->setCheckable(TRUE); |
115 | 118 | ||
119 | |||
120 | cdUpButton = new QPushButton(Resource::loadIconSet("up"),"",this,"cdUpButton"); | ||
121 | cdUpButton ->setFixedSize( QSize( 20, 20 ) ); | ||
122 | connect( cdUpButton ,SIGNAL(released()),this,SLOT( upDir()) ); | ||
123 | cdUpButton ->setFlat(TRUE); | ||
124 | layout->addMultiCellWidget( cdUpButton, 0, 0, 3, 3 ); | ||
125 | cdUpButton->hide(); | ||
126 | |||
127 | // docButton = new QPushButton(Resource::loadIconSet("DocsIcon"),"",this,"docsButton"); | ||
128 | // docButton->setFixedSize( QSize( 20, 20 ) ); | ||
129 | // connect( docButton,SIGNAL(released()),this,SLOT( docButtonPushed()) ); | ||
130 | // docButton->setFlat(TRUE); | ||
131 | // layout->addMultiCellWidget( docButton, 0, 0, 6, 6 ); | ||
132 | |||
133 | homeButton = new QPushButton( Resource::loadIconSet("home"),"",this,"homeButton"); | ||
134 | homeButton->setFixedSize( QSize( 20, 20 ) ); | ||
135 | connect(homeButton,SIGNAL(released()),this,SLOT(homeButtonPushed()) ); | ||
136 | homeButton->setFlat(TRUE); | ||
137 | layout->addMultiCellWidget( homeButton, 0, 0, 4, 4); | ||
138 | homeButton->hide(); | ||
139 | |||
116 | TabWidget = new QTabWidget( this, "TabWidget" ); | 140 | TabWidget = new QTabWidget( this, "TabWidget" ); |
117 | layout->addMultiCellWidget( TabWidget, 1, 1, 0, 3 ); | 141 | layout->addMultiCellWidget( TabWidget, 1, 1, 0, 4 ); |
118 | 142 | ||
119 | // TabWidget->setTabShape(QTabWidget::Triangular); | 143 | // TabWidget->setTabShape(QTabWidget::Triangular); |
@@ -249,5 +273,6 @@ OpieFtp::OpieFtp( ) | |||
249 | 273 | ||
250 | currentPathCombo = new QComboBox( FALSE, this, "currentPathCombo" ); | 274 | currentPathCombo = new QComboBox( FALSE, this, "currentPathCombo" ); |
251 | layout->addMultiCellWidget( currentPathCombo, 3, 3, 0, 3 ); | 275 | layout->addMultiCellWidget( currentPathCombo, 3, 3, 0, 4); |
276 | |||
252 | currentPathCombo->setEditable(TRUE); | 277 | currentPathCombo->setEditable(TRUE); |
253 | currentPathCombo->lineEdit()->setText( currentDir.canonicalPath()); | 278 | currentPathCombo->lineEdit()->setText( currentDir.canonicalPath()); |
@@ -260,5 +285,5 @@ OpieFtp::OpieFtp( ) | |||
260 | 285 | ||
261 | ProgressBar = new QProgressBar( this, "ProgressBar" ); | 286 | ProgressBar = new QProgressBar( this, "ProgressBar" ); |
262 | layout->addMultiCellWidget( ProgressBar, 4, 4, 0, 3 ); | 287 | layout->addMultiCellWidget( ProgressBar, 4, 4, 0, 4); |
263 | 288 | ||
264 | // fillCombos(); | 289 | // fillCombos(); |
@@ -295,19 +320,30 @@ void OpieFtp::tabChanged(QWidget *w) | |||
295 | { | 320 | { |
296 | if (TabWidget->currentPageIndex() == 0) { | 321 | if (TabWidget->currentPageIndex() == 0) { |
297 | currentPathCombo->lineEdit()->setText( currentDir.canonicalPath()); | 322 | currentPathCombo->lineEdit()->setText( currentDir.canonicalPath()); |
298 | tabMenu->setItemChecked(tabMenu->idAt(0),TRUE); | 323 | tabMenu->setItemChecked(tabMenu->idAt(0),TRUE); |
299 | tabMenu->setItemChecked(tabMenu->idAt(1),FALSE); | 324 | tabMenu->setItemChecked(tabMenu->idAt(1),FALSE); |
300 | tabMenu->setItemChecked(tabMenu->idAt(2),FALSE); | 325 | tabMenu->setItemChecked(tabMenu->idAt(2),FALSE); |
326 | if(cdUpButton->isHidden()) | ||
327 | cdUpButton->show(); | ||
328 | if(homeButton->isHidden()) | ||
329 | homeButton->show(); | ||
330 | |||
301 | } | 331 | } |
302 | if (TabWidget->currentPageIndex() == 1) { | 332 | if (TabWidget->currentPageIndex() == 1) { |
303 | currentPathCombo->lineEdit()->setText( currentRemoteDir ); | 333 | currentPathCombo->lineEdit()->setText( currentRemoteDir ); |
304 | tabMenu->setItemChecked(tabMenu->idAt(1),TRUE); | 334 | tabMenu->setItemChecked(tabMenu->idAt(1),TRUE); |
305 | tabMenu->setItemChecked(tabMenu->idAt(0),FALSE); | 335 | tabMenu->setItemChecked(tabMenu->idAt(0),FALSE); |
306 | tabMenu->setItemChecked(tabMenu->idAt(2),FALSE); | 336 | tabMenu->setItemChecked(tabMenu->idAt(2),FALSE); |
337 | if(cdUpButton->isHidden()) | ||
338 | cdUpButton->show(); | ||
339 | homeButton->hide(); | ||
340 | |||
307 | } | 341 | } |
308 | if (TabWidget->currentPageIndex() == 2) { | 342 | if (TabWidget->currentPageIndex() == 2) { |
309 | tabMenu->setItemChecked(tabMenu->idAt(2),TRUE); | 343 | tabMenu->setItemChecked(tabMenu->idAt(2),TRUE); |
310 | tabMenu->setItemChecked(tabMenu->idAt(0),FALSE); | 344 | tabMenu->setItemChecked(tabMenu->idAt(0),FALSE); |
311 | tabMenu->setItemChecked(tabMenu->idAt(1),FALSE); | 345 | tabMenu->setItemChecked(tabMenu->idAt(1),FALSE); |
346 | cdUpButton->hide(); | ||
347 | homeButton->hide(); | ||
312 | } | 348 | } |
313 | } | 349 | } |
@@ -343,5 +379,5 @@ void OpieFtp::connectorBtnToggled(bool On) | |||
343 | void OpieFtp::connector() | 379 | void OpieFtp::connector() |
344 | { | 380 | { |
345 | QCopEnvelope ( "QPE/System", "busy()" ); | 381 | // QCopEnvelope ( "QPE/System", "busy()" ); |
346 | // qApp->processEvents(); | 382 | // qApp->processEvents(); |
347 | currentRemoteDir=remotePath->text(); | 383 | currentRemoteDir=remotePath->text(); |
@@ -386,5 +422,5 @@ void OpieFtp::connector() | |||
386 | writeConfig(); | 422 | writeConfig(); |
387 | connectServerBtn->setText( tr("Disconnect")); | 423 | connectServerBtn->setText( tr("Disconnect")); |
388 | QCopEnvelope ( "QPE/System", "notBusy()" ); | 424 | // QCopEnvelope ( "QPE/System", "notBusy()" ); |
389 | } | 425 | } |
390 | 426 | ||
@@ -403,5 +439,5 @@ void OpieFtp::localUpload() | |||
403 | { | 439 | { |
404 | int fsz; | 440 | int fsz; |
405 | QCopEnvelope ( "QPE/System", "busy()" ); | 441 | // QCopEnvelope ( "QPE/System", "busy()" ); |
406 | // qApp->processEvents(); | 442 | // qApp->processEvents(); |
407 | QList<QListViewItem> * getSelectedItems( QListView * Local_View ); | 443 | QList<QListViewItem> * getSelectedItems( QListView * Local_View ); |
@@ -439,5 +475,6 @@ void OpieFtp::localUpload() | |||
439 | TabWidget->setCurrentPage(1); | 475 | TabWidget->setCurrentPage(1); |
440 | remoteDirList( (const QString &)currentRemoteDir); //this also calls populate | 476 | remoteDirList( (const QString &)currentRemoteDir); //this also calls populate |
441 | QCopEnvelope ( "QPE/System", "notBusy()" ); | 477 | // QCopEnvelope ( "QPE/System", "notBusy()" ); |
478 | |||
442 | } | 479 | } |
443 | 480 | ||
@@ -454,5 +491,5 @@ void OpieFtp::remoteDownload() | |||
454 | // qApp->processEvents(); | 491 | // qApp->processEvents(); |
455 | int fsz; | 492 | int fsz; |
456 | QCopEnvelope ( "QPE/System", "busy()" ); | 493 | // QCopEnvelope ( "QPE/System", "busy()" ); |
457 | 494 | ||
458 | QList<QListViewItem> * getSelectedItems( QListView * Remote_View ); | 495 | QList<QListViewItem> * getSelectedItems( QListView * Remote_View ); |
@@ -493,5 +530,6 @@ void OpieFtp::remoteDownload() | |||
493 | TabWidget->setCurrentPage(0); | 530 | TabWidget->setCurrentPage(0); |
494 | populateLocalView(); | 531 | populateLocalView(); |
495 | QCopEnvelope ( "QPE/System", "notBusy()" ); | 532 | // QCopEnvelope ( "QPE/System", "notBusy()" ); |
533 | |||
496 | } | 534 | } |
497 | 535 | ||
@@ -504,5 +542,5 @@ bool OpieFtp::remoteDirList(const QString &dir) | |||
504 | tmp+="._temp"; | 542 | tmp+="._temp"; |
505 | // qDebug("Listing remote dir "+tmp); | 543 | // qDebug("Listing remote dir "+tmp); |
506 | QCopEnvelope ( "QPE/System", "busy()" ); | 544 | // QCopEnvelope ( "QPE/System", "busy()" ); |
507 | if (!FtpDir( tmp.latin1(), dir.latin1(), conn) ) { | 545 | if (!FtpDir( tmp.latin1(), dir.latin1(), conn) ) { |
508 | QString msg; | 546 | QString msg; |
@@ -513,5 +551,5 @@ bool OpieFtp::remoteDirList(const QString &dir) | |||
513 | } | 551 | } |
514 | populateRemoteView() ; | 552 | populateRemoteView() ; |
515 | QCopEnvelope ( "QPE/System", "notBusy()" ); | 553 | // QCopEnvelope ( "QPE/System", "notBusy()" ); |
516 | return true; | 554 | return true; |
517 | } | 555 | } |
@@ -519,5 +557,5 @@ bool OpieFtp::remoteDirList(const QString &dir) | |||
519 | bool OpieFtp::remoteChDir(const QString &dir) | 557 | bool OpieFtp::remoteChDir(const QString &dir) |
520 | { | 558 | { |
521 | QCopEnvelope ( "QPE/System", "busy()" ); | 559 | // QCopEnvelope ( "QPE/System", "busy()" ); |
522 | if (!FtpChdir( dir.latin1(), conn )) { | 560 | if (!FtpChdir( dir.latin1(), conn )) { |
523 | QString msg; | 561 | QString msg; |
@@ -526,8 +564,8 @@ bool OpieFtp::remoteChDir(const QString &dir) | |||
526 | QMessageBox::message(tr("Note"),msg); | 564 | QMessageBox::message(tr("Note"),msg); |
527 | // qDebug(msg); | 565 | // qDebug(msg); |
528 | QCopEnvelope ( "QPE/System", "notBusy()" ); | 566 | // QCopEnvelope ( "QPE/System", "notBusy()" ); |
529 | return FALSE; | 567 | return FALSE; |
530 | } | 568 | } |
531 | QCopEnvelope ( "QPE/System", "notBusy()" ); | 569 | // QCopEnvelope ( "QPE/System", "notBusy()" ); |
532 | return TRUE; | 570 | return TRUE; |
533 | } | 571 | } |
@@ -600,4 +638,5 @@ void OpieFtp::populateLocalView() | |||
600 | currentPathCombo->lineEdit()->setText( currentDir.canonicalPath() ); | 638 | currentPathCombo->lineEdit()->setText( currentDir.canonicalPath() ); |
601 | fillCombo( (const QString &)currentDir); | 639 | fillCombo( (const QString &)currentDir); |
640 | |||
602 | } | 641 | } |
603 | 642 | ||
@@ -700,5 +739,5 @@ void OpieFtp::remoteListClicked(QListViewItem *selectedItem) | |||
700 | } | 739 | } |
701 | } else { | 740 | } else { |
702 | QCopEnvelope ( "QPE/System", "notBusy()" ); | 741 | // QCopEnvelope ( "QPE/System", "notBusy()" ); |
703 | return; | 742 | return; |
704 | } | 743 | } |
@@ -752,4 +791,5 @@ void OpieFtp::localListClicked(QListViewItem *selectedItem) | |||
752 | } | 791 | } |
753 | } | 792 | } |
793 | |||
754 | } | 794 | } |
755 | 795 | ||
@@ -889,5 +929,5 @@ void OpieFtp::remoteMakDir() | |||
889 | QString filename = fileDlg->LineEdit1->text();//+".playlist"; | 929 | QString filename = fileDlg->LineEdit1->text();//+".playlist"; |
890 | QString tmp=currentRemoteDir+filename; | 930 | QString tmp=currentRemoteDir+filename; |
891 | QCopEnvelope ( "QPE/System", "busy()" ); | 931 | // QCopEnvelope ( "QPE/System", "busy()" ); |
892 | if(FtpMkdir( tmp.latin1(), conn) == 0) { | 932 | if(FtpMkdir( tmp.latin1(), conn) == 0) { |
893 | QString msg; | 933 | QString msg; |
@@ -896,5 +936,5 @@ void OpieFtp::remoteMakDir() | |||
896 | QMessageBox::message(tr("Note"),msg); | 936 | QMessageBox::message(tr("Note"),msg); |
897 | } | 937 | } |
898 | QCopEnvelope ( "QPE/System", "notBusy()" ); | 938 | // QCopEnvelope ( "QPE/System", "notBusy()" ); |
899 | remoteDirList( (const QString &)currentRemoteDir); //this also calls populate | 939 | remoteDirList( (const QString &)currentRemoteDir); //this also calls populate |
900 | } | 940 | } |
@@ -904,5 +944,5 @@ void OpieFtp::remoteDelete() | |||
904 | { | 944 | { |
905 | QString f = Remote_View->currentItem()->text(0); | 945 | QString f = Remote_View->currentItem()->text(0); |
906 | QCopEnvelope ( "QPE/System", "busy()" ); | 946 | // QCopEnvelope ( "QPE/System", "busy()" ); |
907 | if( f.right(1) =="/") { | 947 | if( f.right(1) =="/") { |
908 | QString path= currentRemoteDir+f; | 948 | QString path= currentRemoteDir+f; |
@@ -937,5 +977,5 @@ void OpieFtp::remoteDelete() | |||
937 | }; | 977 | }; |
938 | } | 978 | } |
939 | QCopEnvelope ( "QPE/System", "notBusy()" ); | 979 | // QCopEnvelope ( "QPE/System", "notBusy()" ); |
940 | } | 980 | } |
941 | 981 | ||
@@ -950,5 +990,5 @@ void OpieFtp::remoteRename() | |||
950 | QString oldName = currentRemoteDir +"/"+ curFile; | 990 | QString oldName = currentRemoteDir +"/"+ curFile; |
951 | QString newName = currentRemoteDir +"/"+ fileDlg->LineEdit1->text();//+".playlist"; | 991 | QString newName = currentRemoteDir +"/"+ fileDlg->LineEdit1->text();//+".playlist"; |
952 | QCopEnvelope ( "QPE/System", "busy()" ); | 992 | // QCopEnvelope ( "QPE/System", "busy()" ); |
953 | if(FtpRename( oldName.latin1(), newName.latin1(),conn) == 0) { | 993 | if(FtpRename( oldName.latin1(), newName.latin1(),conn) == 0) { |
954 | QString msg; | 994 | QString msg; |
@@ -957,5 +997,5 @@ void OpieFtp::remoteRename() | |||
957 | QMessageBox::message(tr("Note"),msg); | 997 | QMessageBox::message(tr("Note"),msg); |
958 | } | 998 | } |
959 | QCopEnvelope ( "QPE/System", "notBusy()" ); | 999 | // QCopEnvelope ( "QPE/System", "notBusy()" ); |
960 | remoteDirList( (const QString &)currentRemoteDir); //this also calls populate | 1000 | remoteDirList( (const QString &)currentRemoteDir); //this also calls populate |
961 | } | 1001 | } |
@@ -1192,2 +1232,58 @@ void OpieFtp::deleteServer() | |||
1192 | } | 1232 | } |
1193 | } | 1233 | } |
1234 | |||
1235 | void OpieFtp::upDir() | ||
1236 | { | ||
1237 | if (TabWidget->currentPageIndex() == 0) { | ||
1238 | QString current = currentDir.canonicalPath(); | ||
1239 | QDir dir(current); | ||
1240 | dir.cdUp(); | ||
1241 | current = dir.canonicalPath(); | ||
1242 | chdir( current.latin1() ); | ||
1243 | currentDir.cd( current, TRUE); | ||
1244 | populateLocalView(); | ||
1245 | update(); | ||
1246 | } else { | ||
1247 | if( FtpCDUp( conn) == 0) { | ||
1248 | QString msg; | ||
1249 | msg.sprintf(tr("Unable to cd up\n")+"%s",FtpLastResponse(conn)); | ||
1250 | msg.replace(QRegExp(":"),"\n"); | ||
1251 | QMessageBox::message(tr("Note"),msg); | ||
1252 | // qDebug(msg); | ||
1253 | } | ||
1254 | char path[256]; | ||
1255 | if( FtpPwd( path,sizeof(path),conn) == 0) { //this is easier than fudging the string | ||
1256 | QString msg; | ||
1257 | msg.sprintf(tr("Unable to get working dir\n")+"%s",FtpLastResponse(conn)); | ||
1258 | msg.replace(QRegExp(":"),"\n"); | ||
1259 | QMessageBox::message(tr("Note"),msg); | ||
1260 | // qDebug(msg); | ||
1261 | } | ||
1262 | currentRemoteDir=path; | ||
1263 | remoteDirList( (const QString &)currentRemoteDir); //this also calls populate | ||
1264 | if(currentRemoteDir.right(1) !="/") | ||
1265 | currentRemoteDir +="/"; | ||
1266 | currentPathCombo->lineEdit()->setText( currentRemoteDir); | ||
1267 | fillRemoteCombo( (const QString &)currentRemoteDir); | ||
1268 | populateRemoteView( ); | ||
1269 | } | ||
1270 | } | ||
1271 | |||
1272 | void OpieFtp::docButtonPushed() { | ||
1273 | QString current = QPEApplication::documentDir(); | ||
1274 | chdir( current.latin1() ); | ||
1275 | currentDir.cd( current, TRUE); | ||
1276 | populateLocalView(); | ||
1277 | update(); | ||
1278 | |||
1279 | } | ||
1280 | |||
1281 | void OpieFtp::homeButtonPushed() { | ||
1282 | if (TabWidget->currentPageIndex() == 0) { | ||
1283 | QString current = QDir::homeDirPath(); | ||
1284 | chdir( current.latin1() ); | ||
1285 | currentDir.cd( current, TRUE); | ||
1286 | populateLocalView(); | ||
1287 | update(); | ||
1288 | } | ||
1289 | } | ||
diff --git a/noncore/net/opieftp/opieftp.h b/noncore/net/opieftp/opieftp.h index 32862c7..6852b1c 100644 --- a/noncore/net/opieftp/opieftp.h +++ b/noncore/net/opieftp/opieftp.h | |||
@@ -61,8 +61,12 @@ public: | |||
61 | QString filterStr; | 61 | QString filterStr; |
62 | QListViewItem * item; | 62 | QListViewItem * item; |
63 | QPushButton *connectServerBtn; | 63 | QPushButton *connectServerBtn, *cdUpButton, *homeButton, *docButton; |
64 | bool b; | 64 | bool b; |
65 | int currentServerConfig; | 65 | int currentServerConfig; |
66 | protected slots: | 66 | protected slots: |
67 | void upDir(); | ||
68 | void homeButtonPushed(); | ||
69 | void docButtonPushed(); | ||
70 | |||
67 | void serverComboEdited(const QString & ); | 71 | void serverComboEdited(const QString & ); |
68 | void showLocalMenu( QListViewItem *); | 72 | void showLocalMenu( QListViewItem *); |