summaryrefslogtreecommitdiff
authorllornkcor <llornkcor>2003-11-07 12:37:57 (UTC)
committer llornkcor <llornkcor>2003-11-07 12:37:57 (UTC)
commitfa1e47631442d509e9c1603684bdc9e9590cf866 (patch) (side-by-side diff)
tree5411adf72ccde8c46b13b0487a2602609b081d9e
parent82fdb639058354177d27b432f97e8750ac846ee6 (diff)
downloadopie-fa1e47631442d509e9c1603684bdc9e9590cf866.zip
opie-fa1e47631442d509e9c1603684bdc9e9590cf866.tar.gz
opie-fa1e47631442d509e9c1603684bdc9e9590cf866.tar.bz2
from 1.0, needs fix
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/advancedfm/advancedfm.cpp201
-rw-r--r--noncore/apps/advancedfm/advancedfm.h4
-rw-r--r--noncore/apps/advancedfm/advancedfmMenu.cpp114
3 files changed, 186 insertions, 133 deletions
diff --git a/noncore/apps/advancedfm/advancedfm.cpp b/noncore/apps/advancedfm/advancedfm.cpp
index 2fc4b49..ecf471d 100644
--- a/noncore/apps/advancedfm/advancedfm.cpp
+++ b/noncore/apps/advancedfm/advancedfm.cpp
@@ -104,70 +104,73 @@ void AdvancedFm::tabChanged(QWidget *) {
void AdvancedFm::populateView() {
- QPixmap pm;
- QListView *thisView = CurrentView();
- QDir *thisDir = CurrentDir();
- QString path = thisDir->canonicalPath();
-// qWarning("path is "+path);
- thisView->clear();
- thisDir->setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst);
- thisDir->setMatchAllDirs(TRUE);
- thisDir->setNameFilter(filterStr);
- QString fileL, fileS, fileDate;
- QString fs= getFileSystemType((const QString &) path);
- setCaption(tr("AdvancedFm :: ")+fs+" :: "
- +checkDiskSpace((const QString &) path)+ tr(" kB free") );
- bool isDir=FALSE;
- const QFileInfoList *list = thisDir->entryInfoList( /*QDir::All*/ /*, QDir::SortByMask*/);
- QFileInfoListIterator it(*list);
- QFileInfo *fi;
- while ( (fi=it.current()) ) {
- if (fi->isSymLink() ) {
- QString symLink=fi->readLink();
- QFileInfo sym( symLink);
- fileS.sprintf( "%10i", sym.size() );
- fileL = fi->fileName() +" -> " + sym.filePath().data();
- fileDate = sym.lastModified().toString();
- } else {
- fileS.sprintf( "%10i", fi->size() );
- fileL = fi->fileName();
- fileDate= fi->lastModified().toString();
- if( QDir(QDir::cleanDirPath( path +"/"+fileL)).exists() ) {
-// if(fileL == "..")
- fileL += "/";
- isDir=TRUE;
- }
- }
- QFileInfo fileInfo( path + "/" + fileL);
- if(fileL !="./" && fi->exists()) {
- item = new QListViewItem( thisView, fileL, fileS , fileDate);
-
- if(isDir || fileL.find("/",0,TRUE) != -1) {
-
- if( !QDir( fi->filePath() ).isReadable()) //is directory
- pm = Resource::loadPixmap( "lockedfolder" );
- else
- pm= Resource::loadPixmap( "folder" );
- }
- else if ( fs == "vfat" && fileInfo.filePath().contains("/bin") ) {
- pm = Resource::loadPixmap( "exec");
- }
- else if( (fileInfo.permission( QFileInfo::ExeUser)
- | fileInfo.permission( QFileInfo::ExeGroup)
- | fileInfo.permission( QFileInfo::ExeOther)) && fs != "vfat" ) {
- pm = Resource::loadPixmap( "exec");
- }
- else if( !fi->isReadable() ) {
- pm = Resource::loadPixmap( "locked" );
- }
- else { //everything else goes by mimetype
- MimeType mt(fi->filePath());
- pm=mt.pixmap(); //sets the correct pixmap for mimetype
- if(pm.isNull()) {
- pm = unknownXpm;
- }
- }
- if( fi->isSymLink() || fileL.find("->",0,TRUE) != -1) {
- // qDebug(" overlay link image");
- pm= Resource::loadPixmap( "advancedfm/symlink" );
- // pm= Resource::loadPixmap( "folder" );
+qWarning("PopulateView");
+ QPixmap pm;
+ QListView *thisView = CurrentView();
+ QDir *thisDir = CurrentDir();
+ QString path = thisDir->canonicalPath();
+
+qWarning("path is "+path);
+ thisView->clear();
+ thisDir->setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst);
+ thisDir->setMatchAllDirs(TRUE);
+ thisDir->setNameFilter(filterStr);
+ QString fileL, fileS, fileDate;
+ QString fs= getFileSystemType((const QString &) path);
+ setCaption(tr("AdvancedFm :: ")+fs+" :: "
+ +checkDiskSpace((const QString &) path)+ tr(" kB free") );
+ bool isDir=FALSE;
+ const QFileInfoList *list = thisDir->entryInfoList( /*QDir::All*/ /*, QDir::SortByMask*/);
+ QFileInfoListIterator it(*list);
+ QFileInfo *fi;
+ while ( (fi=it.current()) ) {
+ if (fi->isSymLink() ) {
+ QString symLink=fi->readLink();
+ QFileInfo sym( symLink);
+ fileS.sprintf( "%10i", sym.size() );
+ fileL = fi->fileName() +" -> " + sym.filePath().data();
+ fileDate = sym.lastModified().toString();
+ } else {
+ fileS.sprintf( "%10i", fi->size() );
+ fileL = fi->fileName();
+ fileDate= fi->lastModified().toString();
+ if( QDir(QDir::cleanDirPath( path +"/"+fileL)).exists() ) {
+// if(fileL == "..")
+ fileL += "/";
+ isDir=TRUE;
+ }
+ }
+ QFileInfo fileInfo( path + "/" + fileL);
+
+ if(fileL !="./" && fi->exists()) {
+ item = new QListViewItem( thisView, fileL, fileS , fileDate);
+
+ if(isDir || fileL.find("/",0,TRUE) != -1) {
+
+ if( !QDir( fi->filePath() ).isReadable()) //is directory
+ pm = Resource::loadPixmap( "lockedfolder" );
+ else
+ pm= Resource::loadPixmap( "folder" );
+ }
+ else if ( fs == "vfat" && fileInfo.filePath().contains("/bin") ) {
+ pm = Resource::loadPixmap( "exec");
+ }
+ else if( (fileInfo.permission( QFileInfo::ExeUser)
+ | fileInfo.permission( QFileInfo::ExeGroup)
+ | fileInfo.permission( QFileInfo::ExeOther)) && fs != "vfat" ) {
+ pm = Resource::loadPixmap( "exec");
+ }
+ else if( !fi->isReadable() ) {
+ pm = Resource::loadPixmap( "locked" );
+ }
+ else { //everything else goes by mimetype
+ MimeType mt(fi->filePath());
+ pm=mt.pixmap(); //sets the correct pixmap for mimetype
+ if(pm.isNull()) {
+ pm = unknownXpm;
+ }
+ }
+ if( fi->isSymLink() || fileL.find("->",0,TRUE) != -1) {
+ // qDebug(" overlay link image");
+ pm= Resource::loadPixmap( "advancedfm/symlink" );
+ // pm= Resource::loadPixmap( "folder" );
// QPixmap lnk = Resource::loadPixmap( "opie/symlink" );
@@ -176,36 +179,36 @@ void AdvancedFm::populateView() {
// pm.setMask( pm.createHeuristicMask( FALSE ) );
- }
- item->setPixmap( 0,pm);
-
- }
- isDir=FALSE;
- ++it;
- }
-
- if( path.find("dev",0,TRUE) != -1) {
- struct stat buf;
- dev_t devT;
- DIR *dir;
- struct dirent *mydirent;
-
- if((dir = opendir( path.latin1())) != NULL)
- while ((mydirent = readdir(dir)) != NULL) {
- lstat( mydirent->d_name, &buf);
+ }
+ item->setPixmap( 0,pm);
+
+ }
+ isDir=FALSE;
+ ++it;
+ }
+
+ if( path.find("dev",0,TRUE) != -1) {
+ struct stat buf;
+ dev_t devT;
+ DIR *dir;
+ struct dirent *mydirent;
+
+ if((dir = opendir( path.latin1())) != NULL)
+ while ((mydirent = readdir(dir)) != NULL) {
+ lstat( mydirent->d_name, &buf);
// qDebug(mydirent->d_name);
- fileL.sprintf("%s", mydirent->d_name);
- devT = buf.st_dev;
- fileS.sprintf("%d, %d", (int) ( devT >>8) &0xFF, (int)devT &0xFF);
- fileDate.sprintf("%s", ctime( &buf.st_mtime));
- if( fileL.find(".") == -1 ) {
- item= new QListViewItem( thisView, fileL, fileS, fileDate);
- pm = unknownXpm;
- item->setPixmap( 0,pm);
- }
- }
+ fileL.sprintf("%s", mydirent->d_name);
+ devT = buf.st_dev;
+ fileS.sprintf("%d, %d", (int) ( devT >>8) &0xFF, (int)devT &0xFF);
+ fileDate.sprintf("%s", ctime( &buf.st_mtime));
+ if( fileL.find(".") == -1 ) {
+ item= new QListViewItem( thisView, fileL, fileS, fileDate);
+ pm = unknownXpm;
+ item->setPixmap( 0,pm);
+ }
+ }
- closedir(dir);
- }
+ closedir(dir);
+ }
- thisView->setSorting( 3,FALSE);
- fillCombo( (const QString &) path );
+ thisView->setSorting( 3,FALSE);
+ fillCombo( (const QString &) path );
}
@@ -811,3 +814,3 @@ QListView * AdvancedFm::OtherView() {
void AdvancedFm::setOtherTabCurrent() {
-// qWarning("setOtherTabCurrent()");
+ qWarning("setOtherTabCurrent() %d", whichTab);
if ( whichTab == 1) {
diff --git a/noncore/apps/advancedfm/advancedfm.h b/noncore/apps/advancedfm/advancedfm.h
index 5f6eabb..be574c4 100644
--- a/noncore/apps/advancedfm/advancedfm.h
+++ b/noncore/apps/advancedfm/advancedfm.h
@@ -156,3 +156,5 @@ protected slots:
void fileBeamFinished( Ir *);
-
+ bool copyDirectory( const QString & , const QString & );
+// void navigateToSelected();
+ bool moveDirectory( const QString & , const QString & );
// void slotSwitchtoLocal(int);
diff --git a/noncore/apps/advancedfm/advancedfmMenu.cpp b/noncore/apps/advancedfm/advancedfmMenu.cpp
index c0be948..90c887f 100644
--- a/noncore/apps/advancedfm/advancedfmMenu.cpp
+++ b/noncore/apps/advancedfm/advancedfmMenu.cpp
@@ -70,4 +70,4 @@ void AdvancedFm::showMenuHidden() {
}
- rePopulate();
b = !b;
+ populateView();
}
@@ -82,3 +82,3 @@ void AdvancedFm::showHidden() {
}
- rePopulate();
+ populateView();
}
@@ -148,3 +148,3 @@ void AdvancedFm::makeDir() {
}
- populateView();
+ populateView();
}
@@ -193,3 +193,3 @@ void AdvancedFm::doDelete() {
startProcess( (const QString)cmd.latin1() );
- populateView();
+ populateView();
}
@@ -230,3 +230,3 @@ void AdvancedFm::doDelete() {
}
- populateView();
+ populateView();
}
@@ -247,3 +247,3 @@ void AdvancedFm::filePerms() {
}
- populateView();
+ populateView();
}
@@ -280,3 +280,3 @@ void AdvancedFm::upDir() {
- populateView();
+ populateView();
update();
@@ -341,4 +341,4 @@ void AdvancedFm::copy() {
}
- rePopulate();
- setOtherTabCurrent();
+ setOtherTabCurrent();
+ rePopulate();
}
@@ -391,4 +391,4 @@ void AdvancedFm::copyAs() {
}
- rePopulate();
- setOtherTabCurrent();
+ rePopulate();
+ setOtherTabCurrent();
}
@@ -440,3 +440,3 @@ void AdvancedFm::copySameDir() {
}
- populateView();
+ rePopulate();
}
@@ -463,3 +463,3 @@ void AdvancedFm::move() {
if(curFile.right(1).find("/",0,TRUE) == -1)
- curFile +="/";
+ curFile +="/";
curFile+= item;
@@ -467,24 +467,72 @@ void AdvancedFm::move() {
- QFile f( curFile);
+ if(QFileInfo(curFile).isDir()) {
+ moveDirectory( curFile, destFile );
+ rePopulate();
+ return;
+ }
+
+ QFile f( curFile);
if( f.exists()) {
- if( !copyFile( curFile, destFile) ) {
- QMessageBox::message(tr("Note"),tr("Could not move\n")+curFile);
- return;
+ if( !copyFile( curFile, destFile) ) {
+ QMessageBox::message(tr("Note"),tr("Could not move\n")+curFile);
+ return;
} else
- QFile::remove(curFile);
+ QFile::remove(curFile);
}
- }
+ }
}
- rePopulate();
- setOtherTabCurrent();
+ rePopulate();
+ setOtherTabCurrent();
+}
+
+bool AdvancedFm::moveDirectory( const QString & src, const QString & dest ) {
+ int err = 0;
+ if( copyDirectory( src, dest ) ) { QString cmd = "rm -rf " + src;
+ err = system((const char*)cmd);
+ } else
+ err = -1;
+
+ if(err!=0) {
+ QMessageBox::message(tr("Note"),tr("Could not move\n") + src);
+ return false;
+ }
+ return true;
}
+bool AdvancedFm::copyDirectory( const QString & src, const QString & dest ) {
+
+ QString cmd = "/bin/cp -fpR " + src + " " + dest;
+ qWarning(cmd);
+ int err = system( (const char *) cmd );
+ if ( err != 0 ) {
+ QMessageBox::message("AdvancedFm",
+ tr( "Could not copy \n%1 \nto \n%2").arg( src ).arg( dest ) );
+ return false;
+ }
+
+ return true;
+}
+
+
bool AdvancedFm::copyFile( const QString & src, const QString & dest ) {
- bool success = true;
- struct stat status;
- QFile srcFile(src);
- QFile destFile(dest);
- int err=0;
- int read_fd=0;
+
+
+ if(QFileInfo(src).isDir()) {
+ if( copyDirectory( src, dest )) {
+ setOtherTabCurrent();
+ populateView();
+ return true;
+ }
+ else
+ return false;
+ }
+
+
+ bool success = true;
+ struct stat status;
+ QFile srcFile(src);
+ QFile destFile(dest);
+ int err=0;
+ int read_fd=0;
int write_fd=0;
@@ -635,5 +683,5 @@ void AdvancedFm::mkSym() {
}
- rePopulate();
- setOtherTabCurrent();
- }
+ rePopulate();
+ setOtherTabCurrent();
+ }
}
@@ -689,3 +737,3 @@ void AdvancedFm::startProcess(const QString & cmd) {
void AdvancedFm::processEnded(OProcess *) {
- populateView();
+ rePopulate();
}
@@ -777,3 +825,3 @@ void AdvancedFm::renameIt() {
doRename( thisView );
- populateView();
+ rePopulate();
}
@@ -796,3 +844,3 @@ void AdvancedFm::okRename() {
delete view->currentItem();
- populateView();
+ rePopulate();
}