summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/opieftp/ftplib.c2
-rw-r--r--noncore/net/opieftp/opieftp.cpp278
-rw-r--r--noncore/net/opieftp/opieftp.h9
3 files changed, 168 insertions, 121 deletions
diff --git a/noncore/net/opieftp/ftplib.c b/noncore/net/opieftp/ftplib.c
index b9ca746..5116170 100644
--- a/noncore/net/opieftp/ftplib.c
+++ b/noncore/net/opieftp/ftplib.c
@@ -57,9 +57,9 @@
#define SETSOCKOPT_OPTVAL_TYPE (void *)
#endif
#define FTPLIB_BUFSIZ 8192
-#define ACCEPT_TIMEOUT 30
+#define ACCEPT_TIMEOUT 15
#define FTPLIB_CONTROL 0
#define FTPLIB_READ 1
#define FTPLIB_WRITE 2
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
@@ -1,6 +1,6 @@
/***************************************************************************
- opieftp.cpp
+ opieftp.cpp
-------------------
** Created: Sat Mar 9 23:33:09 2002
copyright : (C) 2002 by ljp
email : ljp@llornkcor.com
@@ -8,9 +8,9 @@
* 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"
@@ -132,9 +132,9 @@ OpieFtp::OpieFtp( )
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)) );
@@ -153,9 +153,9 @@ OpieFtp::OpieFtp( )
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)) );
@@ -173,37 +173,34 @@ OpieFtp::OpieFtp( )
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" ) );
@@ -211,21 +208,20 @@ OpieFtp::OpieFtp( )
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 );
@@ -247,19 +243,21 @@ OpieFtp::OpieFtp( )
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();
+#endif
filterStr="*";
b=FALSE;
populateLocalView();
TabWidget->setCurrentPage(2);
@@ -303,8 +301,96 @@ void OpieFtp::tabChanged(QWidget *w)
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()" );
@@ -327,9 +413,8 @@ void OpieFtp::localUpload()
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 {
@@ -379,77 +464,16 @@ void OpieFtp::remoteDownload()
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) != "/")
@@ -462,9 +486,8 @@ bool OpieFtp::remoteDirList(const QString &dir)
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()" );
@@ -479,9 +502,8 @@ bool OpieFtp::remoteChDir(const QString &dir)
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()" );
@@ -580,9 +602,9 @@ bool OpieFtp::populateRemoteView( )
file. remove();
} else
qDebug("temp file not opened successfullly "+sfile);
Remote_View->setSorting( 4,TRUE);
-
+
return true;
}
void OpieFtp::remoteListClicked(QListViewItem *selectedItem)
@@ -785,9 +807,9 @@ void OpieFtp::localDelete()
system( cmd.latin1());
populateLocalView();
}
break;
- case 1:
+ case 1:
// exit
break;
};
@@ -844,9 +866,9 @@ void OpieFtp::remoteDelete()
msg.replace(QRegExp(":"),"\n");
QMessageBox::message(tr("Note"),msg);
}
remoteDirList( (const QString &)currentRemoteDir); //this also calls populate
-
+
}
break;
};
} else {
@@ -947,9 +969,10 @@ 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;
@@ -972,19 +995,26 @@ void OpieFtp::readConfig() {
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);
@@ -992,13 +1022,15 @@ void OpieFtp::writeConfig() {
cfg.writeEntry("Username", UsernameComboBox->currentText());
cfg.writeEntryCrypt( UsernameComboBox->currentText(), PasswordEdit->text());
cfg.setGroup("Server");
cfg.writeEntry("numberOfEntries", QString::number(numberOfEntries + 1 ));
-
+
+ }
}
-void OpieFtp::fillCombos() {
- Config cfg("opieftp");
+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++) {
@@ -1025,48 +1057,60 @@ void OpieFtp::fillCombos() {
// 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));
+ temp.setNum(index+1);
+ remoteServerStr = cfg.readEntry( temp,"");
+ cfg.setGroup(temp);
+ qDebug(temp);
+ int divider = remoteServerStr.length() - remoteServerStr.find(":",0,TRUE);
+ port = remoteServerStr.right( divider - 1);
+ bool ok;
+ 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", "/"));
- // }
- update();
+ 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);
+ }
+ }
}
diff --git a/noncore/net/opieftp/opieftp.h b/noncore/net/opieftp/opieftp.h
index c88a15b..52ed885 100644
--- a/noncore/net/opieftp/opieftp.h
+++ b/noncore/net/opieftp/opieftp.h
@@ -35,11 +35,12 @@ class QPEMenuBar;
class QPopupMenu;
class QFile;
class QListViewItem;
class QLineEdit;
+class QPushButton;
class OpieFtp : public QMainWindow
-{
+{
Q_OBJECT
public:
OpieFtp( );
@@ -57,11 +58,13 @@ public:
QDir currentDir;
QString currentRemoteDir;
QString filterStr;
QListViewItem * item;
+ QPushButton *connectServerBtn;
bool b;
-
+ int currentServerConfig;
protected slots:
+ void serverComboEdited(const QString & );
void showLocalMenu( QListViewItem *);
void showRemoteMenu( QListViewItem *);
void doLocalCd();
void doRemoteCd();
@@ -95,9 +98,9 @@ protected slots:
void switchToConfigTab();
void fillCombos();
void serverComboSelected(int);
void deleteServer();
-
+ void connectorBtnToggled(bool);
protected:
void nullifyCallBack();
QGridLayout* tabLayout;
QGridLayout* tabLayout_2;