author | llornkcor <llornkcor> | 2002-03-27 05:25:47 (UTC) |
---|---|---|
committer | llornkcor <llornkcor> | 2002-03-27 05:25:47 (UTC) |
commit | 531e1365f5ae7ffcbfc9c9ebe92274282358025e (patch) (side-by-side diff) | |
tree | dc597d8bc5a5a2ada4acbe695f2e48604e9b85f2 | |
parent | 7d6828df281631bce0aaa2aaa229b69b9329e03c (diff) | |
download | opie-531e1365f5ae7ffcbfc9c9ebe92274282358025e.zip opie-531e1365f5ae7ffcbfc9c9ebe92274282358025e.tar.gz opie-531e1365f5ae7ffcbfc9c9ebe92274282358025e.tar.bz2 |
added some icon handling code, and added combo (?), fixed some goofy thing.
-rw-r--r-- | noncore/net/opieftp/opieftp.cpp | 204 | ||||
-rw-r--r-- | noncore/net/opieftp/opieftp.h | 11 |
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 @@ -21,6 +21,7 @@ #include <qpe/resource.h> #include <qpe/qcopenvelope_qws.h> #include <qpe/config.h> +#include <qpe/mimetype.h> #include <qstringlist.h> #include <qtextstream.h> @@ -202,6 +203,7 @@ OpieFtp::OpieFtp( ) 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 ); @@ -225,7 +227,6 @@ OpieFtp::OpieFtp( ) 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 ); @@ -240,11 +241,11 @@ OpieFtp::OpieFtp( ) 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())); @@ -265,6 +266,7 @@ OpieFtp::OpieFtp( ) // remotePath->setText( currentRemoteDir = "/home/llornkcor"); PasswordEdit->setText( tr( "" ) ); #endif + filterStr="*"; b=FALSE; populateLocalView(); @@ -326,7 +328,7 @@ void OpieFtp::newConnection() void OpieFtp::serverComboEdited(const QString & edit) { if( !edit.isEmpty() ) { currentServerConfig = -1; - qDebug("comboedited"); +// qDebug("comboedited"); } } @@ -550,24 +552,30 @@ void OpieFtp::populateLocalView() // 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 ); @@ -640,92 +648,96 @@ bool OpieFtp::populateRemoteView( ) 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()); + } } } @@ -964,7 +976,7 @@ void OpieFtp::currentPathComboActivated(const QString & currentPath) { if (TabWidget->currentPageIndex() == 0) { chdir( currentPath.latin1() ); currentDir.cd( currentPath, TRUE); - populateLocalList(); + populateLocalView(); update(); } else { // chdir( currentPath.latin1() ); @@ -977,27 +989,27 @@ void OpieFtp::currentPathComboActivated(const QString & currentPath) { void OpieFtp::fillCombo(const QString ¤tPath) { - 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 ¤tPath) { - 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); } } @@ -1127,7 +1139,7 @@ void OpieFtp::serverComboSelected(int index) 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; 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 @@ -52,7 +52,7 @@ public: 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; @@ -94,14 +94,13 @@ protected slots: 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); |