summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/opieftp/opieftp.cpp204
-rw-r--r--noncore/net/opieftp/opieftp.h11
2 files changed, 113 insertions, 102 deletions
diff --git a/noncore/net/opieftp/opieftp.cpp b/noncore/net/opieftp/opieftp.cpp
index 37e2134..fd6b028 100644
--- a/noncore/net/opieftp/opieftp.cpp
+++ b/noncore/net/opieftp/opieftp.cpp
@@ -16,16 +16,17 @@
#include "inputDialog.h"
#include <qpe/qpemenubar.h>
#include <qpe/qpetoolbar.h>
#include <qpe/qpeapplication.h>
#include <qpe/resource.h>
#include <qpe/qcopenvelope_qws.h>
#include <qpe/config.h>
+#include <qpe/mimetype.h>
#include <qstringlist.h>
#include <qtextstream.h>
#include <qpushbutton.h>
#include <qtoolbutton.h>
#include <qdatetime.h>
#include <qdir.h>
#include <qfile.h>
@@ -197,16 +198,17 @@ OpieFtp::OpieFtp( )
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" );
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" );
@@ -220,36 +222,35 @@ OpieFtp::OpieFtp( )
connect(deleteServerBtn,SIGNAL(clicked()),SLOT(deleteServer()));
connectServerBtn = new QPushButton( "Connect", tab_3 , "ConnectButton" );
tabLayout_3->addMultiCellWidget( connectServerBtn, 5, 5, 0, 1);
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" ) );
connect(TabWidget,SIGNAL(currentChanged(QWidget *)),
this,SLOT(tabChanged(QWidget*)));
currentDir.setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All);
currentDir.setPath( QDir::currentDirPath());
// currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst);
currentPathCombo = new QComboBox( FALSE, this, "currentPathCombo" );
layout->addMultiCellWidget( currentPathCombo, 3, 3, 0, 3 );
-
+ currentPathCombo->setEditable(TRUE);
currentPathCombo->lineEdit()->setText( currentDir.canonicalPath());
connect( currentPathCombo, SIGNAL( activated( const QString & ) ),
- this, SLOT( currentPathComboChanged()currentPathCombo( const QString & ) ) );
+ this, SLOT( currentPathComboActivated( const QString & ) ) );
connect( currentPathCombo->lineEdit(),SIGNAL(returnPressed()),
this,SLOT(currentPathComboChanged()));
ProgressBar = new QProgressBar( this, "ProgressBar" );
layout->addMultiCellWidget( ProgressBar, 4, 4, 0, 3 );
// fillCombos();
@@ -260,16 +261,17 @@ OpieFtp::OpieFtp( )
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
+
filterStr="*";
b=FALSE;
populateLocalView();
readConfig();
ServerComboBox->setCurrentItem(currentServerConfig);
TabWidget->setCurrentPage(2);
}
@@ -321,17 +323,17 @@ void OpieFtp::newConnection()
PortSpinBox->setValue( 21);
TabWidget->setCurrentPage(2);
currentServerConfig = -1;
}
void OpieFtp::serverComboEdited(const QString & edit) {
if( !edit.isEmpty() ) {
currentServerConfig = -1;
- qDebug("comboedited");
+// qDebug("comboedited");
}
}
void OpieFtp::connectorBtnToggled(bool On)
{
if(On) {
connector();
} else {
@@ -545,34 +547,40 @@ void OpieFtp::populateLocalView()
fileL.sprintf( "%s",fi->fileName().data() );
fileDate= fi->lastModified().toString();
if( QDir(QDir::cleanDirPath(currentDir.canonicalPath()+"/"+fileL)).exists() ) {
fileL+="/";
isDir=TRUE;
// qDebug( fileL);
}
}
- if(fileL !="./") {
- item= new QListViewItem( ListView,fileL,fileS , fileDate);
+ if(fileL !="./" && fi->exists()) {
+ item= new QListViewItem( Local_View,fileL,fileS , fileDate);
QPixmap pm;
- pm= Resource::loadPixmap( "folder" );
if(isDir || fileL.find("/",0,TRUE) != -1) {
- if( !QDir( fi->filePath() ).isReadable())
+ if( !QDir( fi->filePath() ).isReadable())
pm = Resource::loadPixmap( "lockedfolder" );
+ else
+ pm= Resource::loadPixmap( "folder" );
item->setPixmap( 0,pm );
} else {
if( !fi->isReadable() )
pm = Resource::loadPixmap( "locked" );
- else
- pm = Resource::loadPixmap( "fileopen" );
- item->setPixmap( 0,pm);
+ else {
+ MimeType mt(fi->filePath());
+ pm=mt.pixmap();
+ if(pm.isNull())
+ pm = Resource::loadPixmap( "UnknownDocument-14" );
+ item->setPixmap( 0,pm);
+ }
}
if( fileL.find("->",0,TRUE) != -1) {
// overlay link image
+ pm= Resource::loadPixmap( "folder" );
QPixmap lnk = Resource::loadPixmap( "symlink" );
QPainter painter( &pm );
painter.drawPixmap( pm.width()-lnk.width(), pm.height()-lnk.height(), lnk );
pm.setMask( pm.createHeuristicMask( FALSE ) );
item->setPixmap( 0, pm);
}
}
isDir=FALSE;
@@ -635,102 +643,106 @@ bool OpieFtp::populateRemoteView( )
} else
qDebug("temp file not opened successfullly "+sfile);
Remote_View->setSorting( 4,TRUE);
return true;
}
void OpieFtp::remoteListClicked(QListViewItem *selectedItem)
{
- QCopEnvelope ( "QPE/System", "busy()" );
- QString oldRemoteCurrentDir = currentRemoteDir;
- QString strItem=selectedItem->text(0);
- strItem=strItem.simplifyWhiteSpace();
- if(strItem == "../") { // the user wants to go ^
- if( FtpCDUp( conn) == 0) {
- QString msg;
- msg.sprintf(tr("Unable to cd up\n")+"%s",FtpLastResponse(conn));
- msg.replace(QRegExp(":"),"\n");
- QMessageBox::message(tr("Note"),msg);
- qDebug(msg);
- }
- char path[256];
- if( FtpPwd( path,sizeof(path),conn) == 0) { //this is easier than fudging the string
- QString msg;
- msg.sprintf(tr("Unable to get working dir\n")+"%s",FtpLastResponse(conn));
- msg.replace(QRegExp(":"),"\n");
- QMessageBox::message(tr("Note"),msg);
- qDebug(msg);
- }
- currentRemoteDir=path;
- } else {
- if(strItem.find("->",0,TRUE) != -1) { //symlink on some servers
- strItem=strItem.right( strItem.length() - strItem.find("->",0,TRUE) - 2 );
- strItem = strItem.stripWhiteSpace();
- currentRemoteDir = strItem;
- if( !remoteChDir( (const QString &)strItem)) {
- currentRemoteDir = oldRemoteCurrentDir;
- strItem="";
- qDebug("RemoteCurrentDir1 "+oldRemoteCurrentDir);
+ if(item) {
+ QCopEnvelope ( "QPE/System", "busy()" );
+ QString oldRemoteCurrentDir = currentRemoteDir;
+ QString strItem=selectedItem->text(0);
+ strItem=strItem.simplifyWhiteSpace();
+ if(strItem == "../") { // the user wants to go ^
+ if( FtpCDUp( conn) == 0) {
+ QString msg;
+ msg.sprintf(tr("Unable to cd up\n")+"%s",FtpLastResponse(conn));
+ msg.replace(QRegExp(":"),"\n");
+ QMessageBox::message(tr("Note"),msg);
+ qDebug(msg);
}
- } else if(strItem.find("/",0,TRUE) != -1) { // this is a directory
- qDebug("trying directory");
- if( !remoteChDir( (const QString &)currentRemoteDir + strItem)) {
- currentRemoteDir = oldRemoteCurrentDir;
- strItem="";
- qDebug("RemoteCurrentDir1 "+oldRemoteCurrentDir);
+ char path[256];
+ if( FtpPwd( path,sizeof(path),conn) == 0) { //this is easier than fudging the string
+ QString msg;
+ msg.sprintf(tr("Unable to get working dir\n")+"%s",FtpLastResponse(conn));
+ msg.replace(QRegExp(":"),"\n");
+ QMessageBox::message(tr("Note"),msg);
+ qDebug(msg);
+ }
+ currentRemoteDir=path;
+ } else {
+ if(strItem.find("->",0,TRUE) != -1) { //symlink on some servers
+ strItem=strItem.right( strItem.length() - strItem.find("->",0,TRUE) - 2 );
+ strItem = strItem.stripWhiteSpace();
+ currentRemoteDir = strItem;
+ if( !remoteChDir( (const QString &)strItem)) {
+ currentRemoteDir = oldRemoteCurrentDir;
+ strItem="";
+ qDebug("RemoteCurrentDir1 "+oldRemoteCurrentDir);
+ }
+ } else if(strItem.find("/",0,TRUE) != -1) { // this is a directory
+ qDebug("trying directory");
+ if( !remoteChDir( (const QString &)currentRemoteDir + strItem)) {
+ currentRemoteDir = oldRemoteCurrentDir;
+ strItem="";
+ qDebug("RemoteCurrentDir1 "+oldRemoteCurrentDir);
+ } else {
+ currentRemoteDir = currentRemoteDir+strItem;
+ }
} else {
- currentRemoteDir = currentRemoteDir+strItem;
+ qDebug("download "+strItem);
}
- } else {
- qDebug("download "+strItem);
}
+ remoteDirList( (const QString &)currentRemoteDir); //this also calls populate
+ if(currentRemoteDir.right(1) !="/")
+ currentRemoteDir +="/";
+ currentPathCombo->lineEdit()->setText( currentRemoteDir );
+ fillRemoteCombo( (const QString &)currentDir);
+ QCopEnvelope ( "QPE/System", "notBusy()" );
}
- remoteDirList( (const QString &)currentRemoteDir); //this also calls populate
- if(currentRemoteDir.right(1) !="/")
- currentRemoteDir +="/";
- currentPathCombo->lineEdit()->setText( currentRemoteDir );
- fillRemoteCombo( (const QString &)currentDir);
- QCopEnvelope ( "QPE/System", "notBusy()" );
}
void OpieFtp::localListClicked(QListViewItem *selectedItem)
{
- QString strItem=selectedItem->text(0);
- QString strSize=selectedItem->text(1);
- strSize=strSize.stripWhiteSpace();
- if(strItem.find("@",0,TRUE) !=-1 || strItem.find("->",0,TRUE) !=-1 ) { //if symlink
- // is symlink
- QString strItem2 = strItem.right( (strItem.length() - strItem.find("->",0,TRUE)) - 4);
- if(QDir(strItem2).exists() ) {
- currentDir.cd(strItem2, TRUE);
- populateLocalView();
- }
- } else { // not a symlink
- if(strItem.find(". .",0,TRUE) && strItem.find("/",0,TRUE)!=-1 ) {
- if(QDir(QDir::cleanDirPath(currentDir.canonicalPath()+"/"+strItem)).exists() ) {
- strItem=QDir::cleanDirPath(currentDir.canonicalPath()+"/"+strItem);
- currentDir.cd(strItem,FALSE);
- populateLocalView();
- } else {
- currentDir.cdUp();
+ if(item) {
+ QString strItem=selectedItem->text(0);
+ QString strSize=selectedItem->text(1);
+ strSize=strSize.stripWhiteSpace();
+ if(strItem.find("@",0,TRUE) !=-1 || strItem.find("->",0,TRUE) !=-1 ) { //if symlink
+ // is symlink
+ QString strItem2 = strItem.right( (strItem.length() - strItem.find("->",0,TRUE)) - 4);
+ if(QDir(strItem2).exists() ) {
+ currentDir.cd(strItem2, TRUE);
populateLocalView();
}
- if(QDir(strItem).exists()){
- currentDir.cd(strItem, TRUE);
- populateLocalView();
- }
- } else {
- strItem=QDir::cleanDirPath(currentDir.canonicalPath()+"/"+strItem);
- if( QFile::exists(strItem ) ) {
- qDebug("upload "+strItem);
- }
- } //end not symlink
- chdir(strItem.latin1());
+ } else { // not a symlink
+ if(strItem.find(". .",0,TRUE) && strItem.find("/",0,TRUE)!=-1 ) {
+ if(QDir(QDir::cleanDirPath(currentDir.canonicalPath()+"/"+strItem)).exists() ) {
+ strItem=QDir::cleanDirPath(currentDir.canonicalPath()+"/"+strItem);
+ currentDir.cd(strItem,FALSE);
+ populateLocalView();
+ } else {
+ currentDir.cdUp();
+ populateLocalView();
+ }
+ if(QDir(strItem).exists()){
+ currentDir.cd(strItem, TRUE);
+ populateLocalView();
+ }
+ } else {
+ strItem=QDir::cleanDirPath(currentDir.canonicalPath()+"/"+strItem);
+ if( QFile::exists(strItem ) ) {
+ qDebug("upload "+strItem);
+ }
+ } //end not symlink
+ chdir(strItem.latin1());
+ }
}
}
void OpieFtp::doLocalCd()
{
localListClicked( Local_View->currentItem());
}
@@ -959,50 +971,50 @@ void OpieFtp::localRename()
}
populateLocalView();
}
void OpieFtp::currentPathComboActivated(const QString & currentPath) {
if (TabWidget->currentPageIndex() == 0) {
chdir( currentPath.latin1() );
currentDir.cd( currentPath, TRUE);
- populateLocalList();
+ populateLocalView();
update();
} else {
// chdir( currentPath.latin1() );
// currentDir.cd( currentPath, TRUE);
// populateList();
// update();
}
}
void OpieFtp::fillCombo(const QString &currentPath) {
- currentPathComboBox->lineEdit()->setText(currentPath);
+ currentPathCombo->lineEdit()->setText(currentPath);
if( localDirPathStringList.grep(currentPath,TRUE).isEmpty() ) {
- currentPathComboBox->clear();
+ currentPathCombo->clear();
localDirPathStringList.prepend(currentPath );
- currentPathComboBox->insertStringList( localDirPathStringList,-1);
+ currentPathCombo->insertStringList( localDirPathStringList,-1);
}
- currentPathComboBox->lineEdit()->setText(currentPath);
+ currentPathCombo->lineEdit()->setText(currentPath);
if( remoteDirPathStringList.grep(currentPath,TRUE).isEmpty() ) {
- currentPathComboBox->clear();
+ currentPathCombo->clear();
remoteDirPathStringList.prepend(currentPath );
- currentPathComboBox->insertStringList( remoteDirPathStringList,-1);
+ currentPathCombo->insertStringList( remoteDirPathStringList,-1);
}
}
void OpieFtp::fillRemoteCombo(const QString &currentPath) {
- dirPathCombo->lineEdit()->setText(currentPath);
+ currentPathCombo->lineEdit()->setText(currentPath);
if( remoteDirPathStringList.grep(currentPath,TRUE).isEmpty() ) {
- dirPathCombo->clear();
+ currentPathCombo->clear();
remoteDirPathStringList.prepend(currentPath );
- dirPathCombo->insertStringList( remoteDirPathStringList,-1);
+ currentPathCombo->insertStringList( remoteDirPathStringList,-1);
}
}
void OpieFtp::currentPathComboChanged()
{
QString oldRemoteCurrentDir = currentRemoteDir;
// qDebug("oldRemoteCurrentDir "+oldRemoteCurrentDir);
if (TabWidget->currentPageIndex() == 0) {
@@ -1122,17 +1134,17 @@ void OpieFtp::serverComboSelected(int index)
// remoteServerStr = ServerComboBox->text(index);
Config cfg("opieftp");
cfg.setGroup("Server");
int numberOfEntries = cfg.readNumEntry("numberOfEntries",0);
temp.setNum(index+1);
remoteServerStr = cfg.readEntry( temp,"");
cfg.setGroup(temp);
- qDebug(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;
PortSpinBox->setValue( portInt);
diff --git a/noncore/net/opieftp/opieftp.h b/noncore/net/opieftp/opieftp.h
index 57599b7..32862c7 100644
--- a/noncore/net/opieftp/opieftp.h
+++ b/noncore/net/opieftp/opieftp.h
@@ -47,17 +47,17 @@ public:
OpieFtp( );
~OpieFtp();
QTabWidget *TabWidget;
QWidget *tab, *tab_2, *tab_3;
QListView *Local_View, *Remote_View;
QComboBox *UsernameComboBox, *ServerComboBox, *currentPathCombo;
- QLineEdit *PasswordEdit, *remotePath, *currentPathEdit;
+ QLineEdit *PasswordEdit, *remotePath;
QLabel *TextLabel2, *TextLabel1, *TextLabel3, *TextLabel4;;
QSpinBox* PortSpinBox;
QPopupMenu *connectionMenu, *localMenu, *remoteMenu, *tabMenu;
QDir currentDir;
QString currentRemoteDir;
QString filterStr;
QListViewItem * item;
QPushButton *connectServerBtn;
@@ -89,24 +89,23 @@ protected slots:
void remoteDelete();
bool remoteDirList(const QString &);
bool remoteChDir(const QString &);
void tabChanged(QWidget*);
void cleanUp();
void remoteRename();
void localRename();
void currentPathComboChanged();
- void fillCombos();
- void fillCombo(const QString &);
- void currentPathComboActivated(const QString &);
+ void currentPathComboActivated(const QString &);
void switchToLocalTab();
void switchToRemoteTab();
void switchToConfigTab();
- void fillCombo();
- void fillRemoteCombo();
+ void fillCombos();
+ void fillRemoteCombo(const QString&);
+ void fillCombo(const QString &);
void serverComboSelected(int);
void deleteServer();
void connectorBtnToggled(bool);
protected:
QStringList remoteDirPathStringList, localDirPathStringList;
void nullifyCallBack();
QGridLayout* tabLayout;
QGridLayout* tabLayout_2;