summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/net/opieftp/opieftp.cpp140
-rw-r--r--noncore/net/opieftp/opieftp.h6
2 files changed, 123 insertions, 23 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
@@ -77,12 +77,15 @@ OpieFtp::OpieFtp( )
77 connect( qApp,SIGNAL( aboutToQuit()),SLOT( cleanUp()) ); 77 connect( qApp,SIGNAL( aboutToQuit()),SLOT( cleanUp()) );
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 );
82 remoteMenu = new QPopupMenu( this ); 85 remoteMenu = new QPopupMenu( this );
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);
88 menuBar->insertItem( tr( "Local" ), localMenu); 91 menuBar->insertItem( tr( "Local" ), localMenu);
@@ -113,8 +116,29 @@ OpieFtp::OpieFtp( )
113 tabMenu->insertItem( tr( "Switch to Config" ), this, SLOT( switchToConfigTab() )); 116 tabMenu->insertItem( tr( "Switch to Config" ), this, SLOT( switchToConfigTab() ));
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);
120 144
@@ -248,7 +272,8 @@ OpieFtp::OpieFtp( )
248// currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst); 272// currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst);
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());
254 279
@@ -259,7 +284,7 @@ OpieFtp::OpieFtp( )
259 this,SLOT(currentPathComboChanged())); 284 this,SLOT(currentPathComboChanged()));
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();
265 290
@@ -298,17 +323,28 @@ void OpieFtp::tabChanged(QWidget *w)
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}
314 350
@@ -342,7 +378,7 @@ void OpieFtp::connectorBtnToggled(bool On)
342 378
343void OpieFtp::connector() 379void 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();
348 if(ServerComboBox->currentText().isEmpty()) { 384 if(ServerComboBox->currentText().isEmpty()) {
@@ -385,7 +421,7 @@ void OpieFtp::connector()
385 setCaption(ftp_host); 421 setCaption(ftp_host);
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
391void OpieFtp::disConnector() 427void OpieFtp::disConnector()
@@ -402,7 +438,7 @@ void OpieFtp::disConnector()
402void OpieFtp::localUpload() 438void 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 );
408 QListViewItemIterator it( Local_View ); 444 QListViewItemIterator it( Local_View );
@@ -438,7 +474,8 @@ void OpieFtp::localUpload()
438 } 474 }
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
444void OpieFtp::nullifyCallBack() 481void OpieFtp::nullifyCallBack()
@@ -453,7 +490,7 @@ void OpieFtp::remoteDownload()
453{ 490{
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 );
459 QListViewItemIterator it( Remote_View ); 496 QListViewItemIterator it( Remote_View );
@@ -492,7 +529,8 @@ void OpieFtp::remoteDownload()
492 } 529 }
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
498bool OpieFtp::remoteDirList(const QString &dir) 536bool OpieFtp::remoteDirList(const QString &dir)
@@ -503,7 +541,7 @@ bool OpieFtp::remoteDirList(const QString &dir)
503 else 541 else
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;
509 msg.sprintf(tr("Unable to list the directory\n")+dir+"\n%s",FtpLastResponse(conn) ); 547 msg.sprintf(tr("Unable to list the directory\n")+dir+"\n%s",FtpLastResponse(conn) );
@@ -512,23 +550,23 @@ bool OpieFtp::remoteDirList(const QString &dir)
512 return false; 550 return false;
513 } 551 }
514 populateRemoteView() ; 552 populateRemoteView() ;
515 QCopEnvelope ( "QPE/System", "notBusy()" ); 553// QCopEnvelope ( "QPE/System", "notBusy()" );
516 return true; 554 return true;
517} 555}
518 556
519bool OpieFtp::remoteChDir(const QString &dir) 557bool 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;
524 msg.sprintf(tr("Unable to change directories\n")+dir+"\n%s",FtpLastResponse(conn)); 562 msg.sprintf(tr("Unable to change directories\n")+dir+"\n%s",FtpLastResponse(conn));
525 msg.replace(QRegExp(":"),"\n"); 563 msg.replace(QRegExp(":"),"\n");
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}
534 572
@@ -599,6 +637,7 @@ void OpieFtp::populateLocalView()
599 Local_View->setSorting( 3,FALSE); 637 Local_View->setSorting( 3,FALSE);
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
604bool OpieFtp::populateRemoteView( ) 643bool OpieFtp::populateRemoteView( )
@@ -699,7 +738,7 @@ void OpieFtp::remoteListClicked(QListViewItem *selectedItem)
699 currentRemoteDir = currentRemoteDir+strItem; 738 currentRemoteDir = currentRemoteDir+strItem;
700 } 739 }
701 } else { 740 } else {
702 QCopEnvelope ( "QPE/System", "notBusy()" ); 741// QCopEnvelope ( "QPE/System", "notBusy()" );
703 return; 742 return;
704 } 743 }
705 } 744 }
@@ -751,6 +790,7 @@ void OpieFtp::localListClicked(QListViewItem *selectedItem)
751 chdir(strItem.latin1()); 790 chdir(strItem.latin1());
752 } 791 }
753 } 792 }
793
754} 794}
755 795
756void OpieFtp::doLocalCd() 796void OpieFtp::doLocalCd()
@@ -888,14 +928,14 @@ void OpieFtp::remoteMakDir()
888 if( fileDlg->result() == 1 ) { 928 if( fileDlg->result() == 1 ) {
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;
894 msg.sprintf(tr("Unable to make directory\n")+"%s",FtpLastResponse(conn)); 934 msg.sprintf(tr("Unable to make directory\n")+"%s",FtpLastResponse(conn));
895 msg.replace(QRegExp(":"),"\n"); 935 msg.replace(QRegExp(":"),"\n");
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 }
901} 941}
@@ -903,7 +943,7 @@ void OpieFtp::remoteMakDir()
903void OpieFtp::remoteDelete() 943void 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;
909 switch ( QMessageBox::warning(this,tr("Delete"),tr("Do you really want to delete\n")+f+"?" 949 switch ( QMessageBox::warning(this,tr("Delete"),tr("Do you really want to delete\n")+f+"?"
@@ -936,7 +976,7 @@ void OpieFtp::remoteDelete()
936 break; 976 break;
937 }; 977 };
938 } 978 }
939 QCopEnvelope ( "QPE/System", "notBusy()" ); 979// QCopEnvelope ( "QPE/System", "notBusy()" );
940} 980}
941 981
942void OpieFtp::remoteRename() 982void OpieFtp::remoteRename()
@@ -949,14 +989,14 @@ void OpieFtp::remoteRename()
949 if( fileDlg->result() == 1 ) { 989 if( fileDlg->result() == 1 ) {
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;
955 msg.sprintf(tr("Unable to rename file\n")+"%s",FtpLastResponse(conn)); 995 msg.sprintf(tr("Unable to rename file\n")+"%s",FtpLastResponse(conn));
956 msg.replace(QRegExp(":"),"\n"); 996 msg.replace(QRegExp(":"),"\n");
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 }
962} 1002}
@@ -1191,3 +1231,59 @@ void OpieFtp::deleteServer()
1191 } 1231 }
1192 } 1232 }
1193} 1233}
1234
1235void 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
1272void OpieFtp::docButtonPushed() {
1273 QString current = QPEApplication::documentDir();
1274 chdir( current.latin1() );
1275 currentDir.cd( current, TRUE);
1276 populateLocalView();
1277 update();
1278
1279}
1280
1281void 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
@@ -60,10 +60,14 @@ public:
60 QString currentRemoteDir; 60 QString currentRemoteDir;
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;
66protected slots: 66protected 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 *);
69 void showRemoteMenu( QListViewItem *); 73 void showRemoteMenu( QListViewItem *);