-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 @@ -199,6 +199,14 @@ void fileBrowser::populateList() 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) { 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 @@ -24,2 +24,3 @@ +#include <qstringlist.h> #include <qtextstream.h> @@ -238,7 +239,13 @@ OpieFtp::OpieFtp( ) // 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())); @@ -289,3 +296,3 @@ void OpieFtp::tabChanged(QWidget *w) if (TabWidget->currentPageIndex() == 0) { - currentPathEdit->setText( currentDir.canonicalPath()); + currentPathCombo->lineEdit()->setText( currentDir.canonicalPath()); tabMenu->setItemChecked(tabMenu->idAt(0),TRUE); @@ -295,3 +302,3 @@ void OpieFtp::tabChanged(QWidget *w) if (TabWidget->currentPageIndex() == 1) { - currentPathEdit->setText( currentRemoteDir ); + currentPathCombo->lineEdit()->setText( currentRemoteDir ); tabMenu->setItemChecked(tabMenu->idAt(1),TRUE); @@ -546,7 +553,25 @@ void OpieFtp::populateLocalView() 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); + } } @@ -554,5 +579,7 @@ void OpieFtp::populateLocalView() ++it; - } + } Local_View->setSorting( 3,FALSE); - currentPathEdit->setText( currentDir.canonicalPath() ); + currentPathCombo->lineEdit()->setText( currentDir.canonicalPath() ); + fillCombo( (const QString &)currentDir); + } @@ -663,3 +690,4 @@ void OpieFtp::remoteListClicked(QListViewItem *selectedItem) currentRemoteDir +="/"; - currentPathEdit->setText( currentRemoteDir ); + currentPathCombo->lineEdit()->setText( currentRemoteDir ); + fillRemoteCombo( (const QString &)currentDir); QCopEnvelope ( "QPE/System", "notBusy()" ); @@ -934,3 +962,44 @@ void OpieFtp::localRename() -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() { @@ -939,4 +1008,4 @@ void OpieFtp::currentPathEditChanged() 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(); @@ -947,6 +1016,6 @@ void OpieFtp::currentPathEditChanged() if (TabWidget->currentPageIndex() == 1) { - currentRemoteDir = currentPathEdit->text(); + currentRemoteDir = currentPathCombo->lineEdit()->text(); if(currentRemoteDir.right(1) !="/") { currentRemoteDir = currentRemoteDir +"/"; - currentPathEdit->setText( currentRemoteDir ); + currentPathCombo->lineEdit()->setText( currentRemoteDir ); } @@ -954,3 +1023,3 @@ void OpieFtp::currentPathEditChanged() currentRemoteDir = oldRemoteCurrentDir; - currentPathEdit->setText( currentRemoteDir ); + currentPathCombo->lineEdit()->setText( 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 @@ -39,2 +39,3 @@ class QLineEdit; class QPushButton; +class QStringList; @@ -52,3 +53,3 @@ public: - QComboBox *UsernameComboBox, *ServerComboBox; + QComboBox *UsernameComboBox, *ServerComboBox, *currentPathCombo; QLineEdit *PasswordEdit, *remotePath, *currentPathEdit; @@ -94,3 +95,6 @@ protected slots: void localRename(); - void currentPathEditChanged(); + void currentPathComboChanged(); + void fillCombos(); + void fillCombo(const QString &); + void currentPathComboActivated(const QString &); void switchToLocalTab(); @@ -98,3 +102,4 @@ protected slots: void switchToConfigTab(); - void fillCombos(); + void fillCombo(); + void fillRemoteCombo(); void serverComboSelected(int); @@ -103,2 +108,3 @@ protected slots: protected: + QStringList remoteDirPathStringList, localDirPathStringList; void nullifyCallBack(); |