Diffstat (limited to 'noncore/net/opieftp/opieftp.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/net/opieftp/opieftp.cpp | 248 |
1 files changed, 146 insertions, 102 deletions
diff --git a/noncore/net/opieftp/opieftp.cpp b/noncore/net/opieftp/opieftp.cpp index eed133e..d74c55b 100644 --- a/noncore/net/opieftp/opieftp.cpp +++ b/noncore/net/opieftp/opieftp.cpp @@ -6,13 +6,13 @@ email : ljp@llornkcor.com * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * ***************************************************************************/ -//#define DEVELOPER_VERSION +#define DEVELOPERS_VERSION #include "opieftp.h" #include "ftplib.h" #include "inputDialog.h" #include <qpe/qpemenubar.h> @@ -130,13 +130,13 @@ OpieFtp::OpieFtp( ) Local_View->setColumnAlignment(2,QListView::AlignRight); Local_View->setAllColumnsShowFocus(TRUE); QPEApplication::setStylusOperation( Local_View->viewport(),QPEApplication::RightOnHold); tabLayout->addWidget( Local_View, 0, 0 ); - connect( Local_View, SIGNAL( doubleClicked( QListViewItem*)), + connect( Local_View, SIGNAL( clicked( QListViewItem*)), this,SLOT( localListClicked(QListViewItem *)) ); connect( Local_View, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)), this,SLOT( ListPressed(int, QListViewItem *, const QPoint&, int)) ); TabWidget->insertTab( tab, tr( "Local" ) ); @@ -151,13 +151,13 @@ OpieFtp::OpieFtp( ) Remote_View->setColumnAlignment(1,QListView::AlignRight); Remote_View->addColumn( tr("Date"),-1); Remote_View->setColumnAlignment(2,QListView::AlignRight); Remote_View->setAllColumnsShowFocus(TRUE); QPEApplication::setStylusOperation( Remote_View->viewport(),QPEApplication::RightOnHold); - connect( Remote_View, SIGNAL( doubleClicked( QListViewItem*)), + connect( Remote_View, SIGNAL( clicked( QListViewItem*)), this,SLOT( remoteListClicked(QListViewItem *)) ); connect( Remote_View, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)), this,SLOT( RemoteListPressed(int, QListViewItem *, const QPoint&, int)) ); tabLayout_2->addWidget( Remote_View, 0, 0 ); @@ -171,63 +171,59 @@ OpieFtp::OpieFtp( ) TextLabel1 = new QLabel( tab_3, "TextLabel1" ); TextLabel1->setText( tr( "Username" ) ); tabLayout_3->addMultiCellWidget( TextLabel1, 0, 0, 0, 1 ); UsernameComboBox = new QComboBox( FALSE, tab_3, "UsernameComboBox" ); UsernameComboBox->setEditable(TRUE); -// UsernameComboBox->lineEdit()->setText("anonymous"); tabLayout_3->addMultiCellWidget( UsernameComboBox, 1, 1, 0, 1 ); TextLabel2 = new QLabel( tab_3, "TextLabel2" ); TextLabel2->setText( tr( "Password" ) ); tabLayout_3->addMultiCellWidget( TextLabel2, 0, 0, 2, 3 ); PasswordEdit = new QLineEdit( "", tab_3, "PasswordComboBox" ); PasswordEdit->setEchoMode(QLineEdit::Password); -// PasswordEdit->setText( tr( "me@opieftp.org" ) ); tabLayout_3->addMultiCellWidget( PasswordEdit, 1, 1, 2, 3 ); TextLabel3 = new QLabel( tab_3, "TextLabel3" ); TextLabel3->setText( tr( "Remote server" ) ); tabLayout_3->addMultiCellWidget( TextLabel3, 2, 2, 0, 1 ); ServerComboBox = new QComboBox( FALSE, tab_3, "ServerComboBox" ); ServerComboBox->setEditable(TRUE); -// ServerComboBox->lineEdit()->setText( tr( "" ) ); tabLayout_3->addMultiCellWidget( ServerComboBox, 3, 3, 0, 1 ); connect(ServerComboBox,SIGNAL(activated(int)),this,SLOT(serverComboSelected(int ) )); + connect(ServerComboBox,SIGNAL(textChanged(const QString &)),this,SLOT(serverComboEdited(const QString & ) )); QLabel *TextLabel5 = new QLabel( tab_3, "TextLabel5" ); TextLabel5->setText( tr( "Remote path" ) ); tabLayout_3->addMultiCellWidget( TextLabel5, 2, 2, 2, 3 ); remotePath = new QLineEdit( "/", tab_3, "remotePath" ); - remotePath->setText( currentRemoteDir = "/"); tabLayout_3->addMultiCellWidget( remotePath, 3, 3, 2, 3 ); TextLabel4 = new QLabel( tab_3, "TextLabel4" ); TextLabel4->setText( tr( "Port" ) ); tabLayout_3->addMultiCellWidget( TextLabel4, 4, 4, 0, 1 ); PortSpinBox = new QSpinBox( tab_3, "PortSpinBox" ); PortSpinBox->setButtonSymbols( QSpinBox::UpDownArrows ); PortSpinBox->setMaxValue(32786); - PortSpinBox->setValue( 21); tabLayout_3->addMultiCellWidget( PortSpinBox, 4, 4, 1, 1); QPushButton *deleteServerBtn; - deleteServerBtn = new QPushButton( "Delete Server",this, "OpenButton" ); + deleteServerBtn = new QPushButton( "Delete Server", tab_3 , "OpenButton" ); tabLayout_3->addMultiCellWidget( deleteServerBtn, 5, 5, 2, 3); connect(deleteServerBtn,SIGNAL(clicked()),SLOT(deleteServer())); - QPushButton *connectServerBtn; - connectServerBtn = new QPushButton( "Connect",this, "ConnectButton" ); + connectServerBtn = new QPushButton( "Connect", tab_3 , "ConnectButton" ); tabLayout_3->addMultiCellWidget( connectServerBtn, 5, 5, 0, 1); - connect(connectServerBtn,SIGNAL( clicked()),SLOT( connector() )); + connectServerBtn->setToggleButton(TRUE); + connect(connectServerBtn,SIGNAL( toggled( bool)),SLOT( connectorBtnToggled(bool) )); QSpacerItem* spacer = new QSpacerItem( 20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding ); tabLayout_3->addItem( spacer, 5, 0 ); TabWidget->insertTab( tab_3, tr( "Config" ) ); @@ -245,23 +241,25 @@ OpieFtp::OpieFtp( ) connect( currentPathEdit,SIGNAL(returnPressed()),this,SLOT(currentPathEditChanged())); ProgressBar = new QProgressBar( this, "ProgressBar" ); layout->addMultiCellWidget( ProgressBar, 4, 4, 0, 3 ); serverComboSelected(0); -#ifdef DEVELOPER_VERSION -// ServerComboBox->lineEdit()->setText( tr( "llornkcor.com" ) ); + fillCombos(); + +#ifdef DEVELOPERS_VERSION ServerComboBox->lineEdit()->setText( tr( "192.168.129.201" ) ); UsernameComboBox->lineEdit()->setText("root"); -// UsernameComboBox->lineEdit()->setText("llornkcor"); PortSpinBox->setValue( 4242); remotePath->setText( currentRemoteDir = "/"); +// ServerComboBox->lineEdit()->setText( tr( "llornkcor.com" ) ); +// UsernameComboBox->lineEdit()->setText("llornkcor"); +// PortSpinBox->setValue( 21); +// remotePath->setText( currentRemoteDir = "/home/llornkcor"); PasswordEdit->setText( tr( "" ) ); - #endif - fillCombos(); filterStr="*"; b=FALSE; populateLocalView(); TabWidget->setCurrentPage(2); } @@ -301,12 +299,100 @@ void OpieFtp::tabChanged(QWidget *w) tabMenu->setItemChecked(tabMenu->idAt(2),TRUE); tabMenu->setItemChecked(tabMenu->idAt(0),FALSE); tabMenu->setItemChecked(tabMenu->idAt(1),FALSE); } } +void OpieFtp::newConnection() +{ + UsernameComboBox->lineEdit()->setText(""); + PasswordEdit->setText( "" ); + ServerComboBox->lineEdit()->setText( ""); + remotePath->setText( currentRemoteDir = "/"); + PortSpinBox->setValue( 21); + TabWidget->setCurrentPage(2); + currentServerConfig = -1; +} + +void OpieFtp::serverComboEdited(const QString & edit) { + if( !edit.isEmpty() ) { + currentServerConfig = -1; + qDebug("comboedited"); + } +} + +void OpieFtp::connectorBtnToggled(bool On) +{ + if(On) { + connector(); + } else { + disConnector(); + } + +} + +void OpieFtp::connector() +{ + QCopEnvelope ( "QPE/System", "busy()" ); + qApp->processEvents(); + currentRemoteDir=remotePath->text(); + if(ServerComboBox->currentText().isEmpty()) { + QMessageBox::warning(this,tr("Ftp"),tr("Please set the server info"),tr("Ok"),0,0); + TabWidget->setCurrentPage(2); + ServerComboBox->setFocus(); + connectServerBtn->setOn(FALSE); + connectServerBtn->setText( tr("Connect")); + return; + } + FtpInit(); + TabWidget->setCurrentPage(1); + QString ftp_host = ServerComboBox->currentText(); + QString ftp_user = UsernameComboBox->currentText(); + QString ftp_pass = PasswordEdit->text(); + QString port=PortSpinBox->cleanText(); + port.stripWhiteSpace(); + + if(ftp_host.find("ftp://",0, TRUE) != -1 ) + ftp_host=ftp_host.right(ftp_host.length()-6); + ftp_host+=":"+port; + if (!FtpConnect( ftp_host.latin1(), &conn)) { + QMessageBox::message(tr("Note"),tr("Unable to connect to\n")+ftp_host); + connectServerBtn->setOn(FALSE); + connectServerBtn->setText( tr("Connect")); + return ; + } + if (!FtpLogin( ftp_user.latin1(), ftp_pass.latin1(),conn )) { + QString msg; + msg.sprintf(tr("Unable to log in\n")+"%s",FtpLastResponse(conn)); + msg.replace(QRegExp(":"),"\n"); + QMessageBox::message(tr("Note"),msg); + if(conn) + FtpQuit(conn); + connectServerBtn->setOn(FALSE); + connectServerBtn->setText( tr("Connect")); + return ; + } + remoteDirList("/") ; + setCaption(ftp_host); + writeConfig(); + connectServerBtn->setText( tr("Disconnect")); + QCopEnvelope ( "QPE/System", "notBusy()" ); +} + +void OpieFtp::disConnector() +{ + if(conn) + FtpQuit(conn); + setCaption("OpieFtp"); + currentRemoteDir="/"; + Remote_View->clear(); + connectServerBtn->setText( tr("Connect")); + connectServerBtn->setOn(FALSE); + +} + void OpieFtp::localUpload() { int fsz; QCopEnvelope ( "QPE/System", "busy()" ); qApp->processEvents(); QString strItem = Local_View->currentItem()->text(0); @@ -325,13 +411,12 @@ void OpieFtp::localUpload() if( !FtpPut( localFile.latin1(), remoteFile.latin1(),FTPLIB_IMAGE, conn ) ) { QString msg; msg.sprintf(tr("Unable to upload\n")+"%s",FtpLastResponse(conn)); msg.replace(QRegExp(":"),"\n"); QMessageBox::message(tr("Note"),msg); -// FtpQuit(conn); } ProgressBar->reset(); nullifyCallBack(); } else { QMessageBox::message(tr("Note"),tr("Cannot upload directories")); } @@ -377,81 +462,20 @@ void OpieFtp::remoteDownload() if(!FtpGet( localFile.latin1(), remoteFile.latin1(),FTPLIB_IMAGE, conn ) ) { QString msg; msg.sprintf(tr("Unable to download \n")+"%s",FtpLastResponse(conn)); msg.replace(QRegExp(":"),"\n"); QMessageBox::message(tr("Note"),msg); -// FtpQuit(conn); } ProgressBar->reset(); nullifyCallBack(); TabWidget->setCurrentPage(0); populateLocalView(); QCopEnvelope ( "QPE/System", "notBusy()" ); } - -void OpieFtp::newConnection() -{ - UsernameComboBox->lineEdit()->setText(""); - PasswordEdit->setText( "" ); - ServerComboBox->lineEdit()->setText( ""); - remotePath->setText( currentRemoteDir = "/"); - PortSpinBox->setValue( 21); - TabWidget->setCurrentPage(2); - -} - -void OpieFtp::connector() -{ - QCopEnvelope ( "QPE/System", "busy()" ); - qApp->processEvents(); - currentRemoteDir=remotePath->text(); - if(ServerComboBox->currentText().isEmpty()) { - QMessageBox::warning(this,tr("Ftp"),tr("Please set the server info"),tr("Ok"),0,0); - TabWidget->setCurrentPage(2); - ServerComboBox->setFocus(); - return; - } - FtpInit(); - TabWidget->setCurrentPage(1); - QString ftp_host = ServerComboBox->currentText(); - QString ftp_user = UsernameComboBox->currentText(); - QString ftp_pass = PasswordEdit->text(); - QString port=PortSpinBox->cleanText(); - port.stripWhiteSpace(); - - if(ftp_host.find("ftp://",0, TRUE) != -1 ) - ftp_host=ftp_host.right(ftp_host.length()-6); - ftp_host+=":"+port; - if (!FtpConnect( ftp_host.latin1(), &conn)) { - QMessageBox::message(tr("Note"),tr("Unable to connect to\n")+ftp_host); - return ; - } - if (!FtpLogin( ftp_user.latin1(), ftp_pass.latin1(),conn )) { - QString msg; - msg.sprintf(tr("Unable to log in\n")+"%s",FtpLastResponse(conn)); - msg.replace(QRegExp(":"),"\n"); - QMessageBox::message(tr("Note"),msg); - FtpQuit(conn); - return ; - } - remoteDirList("/") ; - setCaption(ftp_host); - writeConfig(); - QCopEnvelope ( "QPE/System", "notBusy()" ); -} - -void OpieFtp::disConnector() -{ - FtpQuit(conn); - setCaption("OpieFtp"); - currentRemoteDir="/"; - Remote_View->clear(); -} - bool OpieFtp::remoteDirList(const QString &dir) { QString tmp = QDir::homeDirPath(); if(tmp.right(1) != "/") tmp+="/._temp"; else @@ -460,13 +484,12 @@ bool OpieFtp::remoteDirList(const QString &dir) QCopEnvelope ( "QPE/System", "busy()" ); if (!FtpDir( tmp.latin1(), dir.latin1(), conn) ) { QString msg; msg.sprintf(tr("Unable to list the directory\n")+dir+"\n%s",FtpLastResponse(conn) ); msg.replace(QRegExp(":"),"\n"); QMessageBox::message(tr("Note"),msg); -// FtpQuit(conn); return false; } populateRemoteView() ; QCopEnvelope ( "QPE/System", "notBusy()" ); return true; } @@ -477,13 +500,12 @@ bool OpieFtp::remoteChDir(const QString &dir) if (!FtpChdir( dir.latin1(), conn )) { QString msg; msg.sprintf(tr("Unable to change directories\n")+dir+"\n%s",FtpLastResponse(conn)); msg.replace(QRegExp(":"),"\n"); QMessageBox::message(tr("Note"),msg); qDebug(msg); -// FtpQuit(conn); QCopEnvelope ( "QPE/System", "notBusy()" ); return FALSE; } QCopEnvelope ( "QPE/System", "notBusy()" ); return TRUE; } @@ -945,13 +967,14 @@ void OpieFtp::switchToRemoteTab() void OpieFtp::switchToConfigTab() { TabWidget->setCurrentPage(2); } -void OpieFtp::readConfig() { +void OpieFtp::readConfig() +{ Config cfg("opieftp"); cfg.setGroup("Server"); QString username, remoteServer, remotePathStr, password, port, temp; int numberOfEntries = cfg.readNumEntry("numberOfEntries",0); for (int i = 0; i <= numberOfEntries; i++) { @@ -970,36 +993,45 @@ void OpieFtp::readConfig() { remoteServer = remoteServer.left(divider - 1); remotePath->setText( remotePathStr); username = cfg.readEntry(temp); UsernameComboBox->insertItem(username); password = cfg.readEntryCrypt(username,""); PasswordEdit->setText(password); - } - } -void OpieFtp::writeConfig() { +void OpieFtp::writeConfig() +{ Config cfg("opieftp"); cfg.setGroup("Server"); - QString temp; + QString username, remoteServerStr, remotePathStr, password, port, temp; int numberOfEntries = cfg.readNumEntry("numberOfEntries",0); + if( currentServerConfig == -1) { + + temp.setNum( numberOfEntries + 1); + cfg.setGroup("Server"); + remoteServerStr = cfg.readEntry( temp,""); + int divider = remoteServerStr.length() - remoteServerStr.find(":",0,TRUE); + remoteServerStr = remoteServerStr.left(remoteServerStr.length()-divider); + temp.setNum(numberOfEntries+1); cfg.setGroup("Server"); cfg.writeEntry( temp, ServerComboBox->currentText() +":"+PortSpinBox->cleanText() ); cfg.setGroup(temp); cfg.writeEntry("RemotePath", remotePath->text()); cfg.writeEntry("Username", UsernameComboBox->currentText()); cfg.writeEntryCrypt( UsernameComboBox->currentText(), PasswordEdit->text()); cfg.setGroup("Server"); cfg.writeEntry("numberOfEntries", QString::number(numberOfEntries + 1 )); } +} -void OpieFtp::fillCombos() { +void OpieFtp::fillCombos() +{ Config cfg("opieftp"); cfg.setGroup("Server"); QString username, remoteServerStr, remotePathStr, password, port, temp; int numberOfEntries = cfg.readNumEntry("numberOfEntries",0); for (int i = 1; i <= numberOfEntries; i++) { temp.setNum(i); @@ -1023,50 +1055,62 @@ void OpieFtp::fillCombos() { // remotePath->setText( remotePathStr); // username = cfg.readEntry(temp); // UsernameComboBox->insertItem(username); // password = cfg.readEntryCrypt(username,""); // PasswordEdit->setText(password); - } - } -void OpieFtp::serverComboSelected(int index) { - +void OpieFtp::serverComboSelected(int index) +{ + currentServerConfig = index; QString username, remoteServerStr, remotePathStr, password, port, temp; // remoteServerStr = ServerComboBox->text(index); Config cfg("opieftp"); cfg.setGroup("Server"); int numberOfEntries = cfg.readNumEntry("numberOfEntries",0); -// for (int i = 0; i <= numberOfEntries; i++) { temp.setNum(index+1); remoteServerStr = cfg.readEntry( temp,""); - // if( remoteServerStr.find( ServerComboBox->text(index),0,TRUE) != -1 ) { cfg.setGroup(temp); qDebug(temp); int divider = remoteServerStr.length() - remoteServerStr.find(":",0,TRUE); port = remoteServerStr.right( divider - 1); bool ok; - PortSpinBox->setValue( port.toInt(&ok,10)); + int portInt = port.toInt(&ok,10); + if( portInt == 0) portInt = 21; - remotePath->setText(cfg.readEntry("RemotePath", "")); - username = cfg.readEntry("Username", ""); - UsernameComboBox->lineEdit()->setText(username); - PasswordEdit->setText(cfg.readEntryCrypt(username, "")); + PortSpinBox->setValue( portInt); -// } + remotePath->setText(cfg.readEntry("RemotePath", "/")); - // } + username = cfg.readEntry("Username", "anonymous"); + UsernameComboBox->lineEdit()->setText(username); + PasswordEdit->setText(cfg.readEntryCrypt(username, "me@opieftp.org")); update(); } // UsernameComboBox->lineEdit()->setText("root"); // PasswordEdit->setText( tr( "" ) ); // ServerComboBox->lineEdit()->setText( tr( "192.168.129.201" ) ); // remotePath->setText( currentRemoteDir = "/home/llornkcor/"); // PortSpinBox->setValue( 4242); -void OpieFtp::deleteServer() { - +void OpieFtp::deleteServer() +{ + QString username, remoteServerStr, remotePathStr, password, port, temp; + remoteServerStr = ServerComboBox->currentText( ); + username = UsernameComboBox->currentText(); + Config cfg("opieftp"); + cfg.setGroup("Server"); + int numberOfEntries = cfg.readNumEntry("numberOfEntries",0); + for (int i = 0; i <= numberOfEntries; i++) { + temp.setNum(i+1); + cfg.setGroup("Server"); + if( cfg.readEntry( temp,"").find( remoteServerStr,0,TRUE) != -1 + && cfg.readEntry(temp).find(username,0,TRUE) != -1 + && !remoteServerStr.isEmpty()) { + qDebug(temp); + } + } } |