summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/apps/textedit/fileBrowser.cpp14
-rw-r--r--noncore/net/opieftp/opieftp.cpp109
-rw-r--r--noncore/net/opieftp/opieftp.h12
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
@@ -198,8 +198,16 @@ void fileBrowser::populateList()
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
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
@@ -23,4 +23,5 @@
#include <qpe/config.h>
+#include <qstringlist.h>
#include <qtextstream.h>
#include <qpushbutton.h>
@@ -237,9 +238,15 @@ OpieFtp::OpieFtp( )
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" );
@@ -288,5 +295,5 @@ 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);
@@ -294,5 +301,5 @@ void OpieFtp::tabChanged(QWidget *w)
}
if (TabWidget->currentPageIndex() == 1) {
- currentPathEdit->setText( currentRemoteDir );
+ currentPathCombo->lineEdit()->setText( currentRemoteDir );
tabMenu->setItemChecked(tabMenu->idAt(1),TRUE);
tabMenu->setItemChecked(tabMenu->idAt(0),FALSE);
@@ -545,15 +552,35 @@ 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);
+ }
}
isDir=FALSE;
++it;
- }
+ }
Local_View->setSorting( 3,FALSE);
- currentPathEdit->setText( currentDir.canonicalPath() );
+ currentPathCombo->lineEdit()->setText( currentDir.canonicalPath() );
+ fillCombo( (const QString &)currentDir);
+
}
@@ -662,5 +689,6 @@ void OpieFtp::remoteListClicked(QListViewItem *selectedItem)
if(currentRemoteDir.right(1) !="/")
currentRemoteDir +="/";
- currentPathEdit->setText( currentRemoteDir );
+ currentPathCombo->lineEdit()->setText( currentRemoteDir );
+ fillRemoteCombo( (const QString &)currentDir);
QCopEnvelope ( "QPE/System", "notBusy()" );
}
@@ -933,11 +961,52 @@ 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 &currentPath) {
+
+ 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 &currentPath) {
+
+ 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 {
@@ -946,12 +1015,12 @@ 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 );
}
if( !remoteChDir( (const QString &)currentRemoteDir) ) {
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
@@ -38,4 +38,5 @@ class QListViewItem;
class QLineEdit;
class QPushButton;
+class QStringList;
class OpieFtp : public QMainWindow
@@ -51,5 +52,5 @@ public:
QListView *Local_View, *Remote_View;
- QComboBox *UsernameComboBox, *ServerComboBox;
+ QComboBox *UsernameComboBox, *ServerComboBox, *currentPathCombo;
QLineEdit *PasswordEdit, *remotePath, *currentPathEdit;
QLabel *TextLabel2, *TextLabel1, *TextLabel3, *TextLabel4;;
@@ -93,13 +94,18 @@ protected slots:
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;