-rw-r--r-- | core/apps/textedit/fileBrowser.cpp | 14 | ||||
-rw-r--r-- | noncore/net/opieftp/opieftp.cpp | 109 | ||||
-rw-r--r-- | noncore/net/opieftp/opieftp.h | 12 |
3 files changed, 109 insertions, 26 deletions
diff --git a/core/apps/textedit/fileBrowser.cpp b/core/apps/textedit/fileBrowser.cpp index 41e800c..acd50c2 100644 --- a/core/apps/textedit/fileBrowser.cpp +++ b/core/apps/textedit/fileBrowser.cpp @@ -194,16 +194,24 @@ void fileBrowser::populateList() } } if(fileL !="./") { item= new QListViewItem( ListView,fileL,fileS , fileDate); QPixmap pm; pm= Resource::loadPixmap( "folder" ); - if(isDir || fileL.find("/",0,TRUE) != -1) + + if(isDir || fileL.find("/",0,TRUE) != -1) { + if( !QDir( fi->filePath() ).isReadable()) + pm = Resource::loadPixmap( "lockedfolder" ); item->setPixmap( 0,pm ); - else - item->setPixmap( 0, Resource::loadPixmap( "fileopen" )); + } else { + if( !fi->isReadable() ) + pm = Resource::loadPixmap( "locked" ); + else + pm = Resource::loadPixmap( "fileopen" ); + item->setPixmap( 0,pm); + } if( fileL.find("->",0,TRUE) != -1) { // overlay link image QPixmap lnk = Resource::loadPixmap( "symlink" ); QPainter painter( &pm ); painter.drawPixmap( pm.width()-lnk.width(), pm.height()-lnk.height(), lnk ); pm.setMask( pm.createHeuristicMask( FALSE ) ); diff --git a/noncore/net/opieftp/opieftp.cpp b/noncore/net/opieftp/opieftp.cpp index e97a9bf..37e2134 100644 --- a/noncore/net/opieftp/opieftp.cpp +++ b/noncore/net/opieftp/opieftp.cpp @@ -19,12 +19,13 @@ #include <qpe/qpetoolbar.h> #include <qpe/qpeapplication.h> #include <qpe/resource.h> #include <qpe/qcopenvelope_qws.h> #include <qpe/config.h> +#include <qstringlist.h> #include <qtextstream.h> #include <qpushbutton.h> #include <qtoolbutton.h> #include <qdatetime.h> #include <qdir.h> #include <qfile.h> @@ -233,17 +234,23 @@ OpieFtp::OpieFtp( ) 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); - currentPathEdit = new QLineEdit( "/", this, "currentPathEdit" ); - layout->addMultiCellWidget( currentPathEdit, 3, 3, 0, 3 ); - currentPathEdit->setText( currentDir.canonicalPath()); - connect( currentPathEdit,SIGNAL(returnPressed()),this,SLOT(currentPathEditChanged())); + currentPathCombo = new QComboBox( FALSE, this, "currentPathCombo" ); + layout->addMultiCellWidget( currentPathCombo, 3, 3, 0, 3 ); + + currentPathCombo->lineEdit()->setText( currentDir.canonicalPath()); + + connect( currentPathCombo, SIGNAL( activated( const QString & ) ), + this, SLOT( currentPathComboChanged()currentPathCombo( const QString & ) ) ); + + connect( currentPathCombo->lineEdit(),SIGNAL(returnPressed()), + this,SLOT(currentPathComboChanged())); ProgressBar = new QProgressBar( this, "ProgressBar" ); layout->addMultiCellWidget( ProgressBar, 4, 4, 0, 3 ); // fillCombos(); @@ -284,19 +291,19 @@ void OpieFtp::cleanUp() file.remove(); } void OpieFtp::tabChanged(QWidget *w) { if (TabWidget->currentPageIndex() == 0) { - currentPathEdit->setText( currentDir.canonicalPath()); + currentPathCombo->lineEdit()->setText( currentDir.canonicalPath()); tabMenu->setItemChecked(tabMenu->idAt(0),TRUE); tabMenu->setItemChecked(tabMenu->idAt(1),FALSE); tabMenu->setItemChecked(tabMenu->idAt(2),FALSE); } if (TabWidget->currentPageIndex() == 1) { - currentPathEdit->setText( currentRemoteDir ); + currentPathCombo->lineEdit()->setText( currentRemoteDir ); tabMenu->setItemChecked(tabMenu->idAt(1),TRUE); tabMenu->setItemChecked(tabMenu->idAt(0),FALSE); tabMenu->setItemChecked(tabMenu->idAt(2),FALSE); } if (TabWidget->currentPageIndex() == 2) { tabMenu->setItemChecked(tabMenu->idAt(2),TRUE); @@ -541,23 +548,43 @@ void OpieFtp::populateLocalView() fileL+="/"; isDir=TRUE; // qDebug( fileL); } } if(fileL !="./") { - item = new QListViewItem( Local_View,fileL,fileS, fileDate); - if(isDir || fileL.find("/",0,TRUE) != -1) - item->setPixmap( 0, Resource::loadPixmap( "folder" )); - else - item->setPixmap( 0, Resource::loadPixmap( "fileopen" )); + item= new QListViewItem( ListView,fileL,fileS , fileDate); + QPixmap pm; + pm= Resource::loadPixmap( "folder" ); + + if(isDir || fileL.find("/",0,TRUE) != -1) { + if( !QDir( fi->filePath() ).isReadable()) + pm = Resource::loadPixmap( "lockedfolder" ); + item->setPixmap( 0,pm ); + } else { + if( !fi->isReadable() ) + pm = Resource::loadPixmap( "locked" ); + else + pm = Resource::loadPixmap( "fileopen" ); + item->setPixmap( 0,pm); + } + if( fileL.find("->",0,TRUE) != -1) { + // overlay link image + 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; ++it; - } + } Local_View->setSorting( 3,FALSE); - currentPathEdit->setText( currentDir.canonicalPath() ); + currentPathCombo->lineEdit()->setText( currentDir.canonicalPath() ); + fillCombo( (const QString &)currentDir); + } bool OpieFtp::populateRemoteView( ) { // qDebug("populate remoteview"); QString sfile=QDir::homeDirPath(); @@ -658,13 +685,14 @@ void OpieFtp::remoteListClicked(QListViewItem *selectedItem) qDebug("download "+strItem); } } remoteDirList( (const QString &)currentRemoteDir); //this also calls populate if(currentRemoteDir.right(1) !="/") currentRemoteDir +="/"; - currentPathEdit->setText( currentRemoteDir ); + currentPathCombo->lineEdit()->setText( currentRemoteDir ); + fillRemoteCombo( (const QString &)currentDir); QCopEnvelope ( "QPE/System", "notBusy()" ); } void OpieFtp::localListClicked(QListViewItem *selectedItem) { QString strItem=selectedItem->text(0); @@ -929,33 +957,74 @@ void OpieFtp::localRename() if( rename(oldname.latin1(), newName.latin1())== -1) QMessageBox::message(tr("Note"),tr("Could not rename")); } populateLocalView(); } -void OpieFtp::currentPathEditChanged() +void OpieFtp::currentPathComboActivated(const QString & currentPath) { + if (TabWidget->currentPageIndex() == 0) { + chdir( currentPath.latin1() ); + currentDir.cd( currentPath, TRUE); + populateLocalList(); + update(); + } else { +// chdir( currentPath.latin1() ); +// currentDir.cd( currentPath, TRUE); +// populateList(); +// update(); + + } +} + +void OpieFtp::fillCombo(const QString ¤tPath) { + + currentPathComboBox->lineEdit()->setText(currentPath); + if( localDirPathStringList.grep(currentPath,TRUE).isEmpty() ) { + currentPathComboBox->clear(); + localDirPathStringList.prepend(currentPath ); + currentPathComboBox->insertStringList( localDirPathStringList,-1); + } + currentPathComboBox->lineEdit()->setText(currentPath); + if( remoteDirPathStringList.grep(currentPath,TRUE).isEmpty() ) { + currentPathComboBox->clear(); + remoteDirPathStringList.prepend(currentPath ); + currentPathComboBox->insertStringList( remoteDirPathStringList,-1); + } +} + +void OpieFtp::fillRemoteCombo(const QString ¤tPath) { + + dirPathCombo->lineEdit()->setText(currentPath); + if( remoteDirPathStringList.grep(currentPath,TRUE).isEmpty() ) { + dirPathCombo->clear(); + remoteDirPathStringList.prepend(currentPath ); + dirPathCombo->insertStringList( remoteDirPathStringList,-1); + } +} + +void OpieFtp::currentPathComboChanged() { QString oldRemoteCurrentDir = currentRemoteDir; // qDebug("oldRemoteCurrentDir "+oldRemoteCurrentDir); if (TabWidget->currentPageIndex() == 0) { - if(QDir( currentPathEdit->text()).exists()) { - currentDir.setPath( currentPathEdit->text() ); + if(QDir( currentPathCombo->lineEdit()->text()).exists()) { + currentDir.setPath( currentPathCombo->lineEdit()->text() ); populateLocalView(); } else { QMessageBox::message(tr("Note"),tr("That directory does not exist")); } } if (TabWidget->currentPageIndex() == 1) { - currentRemoteDir = currentPathEdit->text(); + currentRemoteDir = currentPathCombo->lineEdit()->text(); if(currentRemoteDir.right(1) !="/") { currentRemoteDir = currentRemoteDir +"/"; - currentPathEdit->setText( currentRemoteDir ); + currentPathCombo->lineEdit()->setText( currentRemoteDir ); } if( !remoteChDir( (const QString &)currentRemoteDir) ) { currentRemoteDir = oldRemoteCurrentDir; - currentPathEdit->setText( currentRemoteDir ); + currentPathCombo->lineEdit()->setText( currentRemoteDir ); } remoteDirList( (const QString &)currentRemoteDir); } } diff --git a/noncore/net/opieftp/opieftp.h b/noncore/net/opieftp/opieftp.h index 52ed885..57599b7 100644 --- a/noncore/net/opieftp/opieftp.h +++ b/noncore/net/opieftp/opieftp.h @@ -34,12 +34,13 @@ class QPEToolBar; class QPEMenuBar; class QPopupMenu; class QFile; class QListViewItem; class QLineEdit; class QPushButton; +class QStringList; class OpieFtp : public QMainWindow { Q_OBJECT public: @@ -47,13 +48,13 @@ public: ~OpieFtp(); QTabWidget *TabWidget; QWidget *tab, *tab_2, *tab_3; QListView *Local_View, *Remote_View; - QComboBox *UsernameComboBox, *ServerComboBox; + QComboBox *UsernameComboBox, *ServerComboBox, *currentPathCombo; QLineEdit *PasswordEdit, *remotePath, *currentPathEdit; QLabel *TextLabel2, *TextLabel1, *TextLabel3, *TextLabel4;; QSpinBox* PortSpinBox; QPopupMenu *connectionMenu, *localMenu, *remoteMenu, *tabMenu; QDir currentDir; QString currentRemoteDir; @@ -89,21 +90,26 @@ protected slots: bool remoteDirList(const QString &); bool remoteChDir(const QString &); void tabChanged(QWidget*); void cleanUp(); void remoteRename(); void localRename(); - void currentPathEditChanged(); + void currentPathComboChanged(); + void fillCombos(); + void fillCombo(const QString &); + void currentPathComboActivated(const QString &); void switchToLocalTab(); void switchToRemoteTab(); void switchToConfigTab(); - void fillCombos(); + void fillCombo(); + void fillRemoteCombo(); void serverComboSelected(int); void deleteServer(); void connectorBtnToggled(bool); protected: + QStringList remoteDirPathStringList, localDirPathStringList; void nullifyCallBack(); QGridLayout* tabLayout; QGridLayout* tabLayout_2; QGridLayout* tabLayout_3; }; |