summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/advancedfm/advancedfm.cpp65
1 files changed, 50 insertions, 15 deletions
diff --git a/noncore/apps/advancedfm/advancedfm.cpp b/noncore/apps/advancedfm/advancedfm.cpp
index faa03dc..bd513c0 100644
--- a/noncore/apps/advancedfm/advancedfm.cpp
+++ b/noncore/apps/advancedfm/advancedfm.cpp
@@ -789,97 +789,96 @@ void AdvancedFm::remoteMakDir()
populateRemoteView();
}
void AdvancedFm::localDelete()
{
QStringList curFileList = getPath();
QString myFile;
for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
myFile = (*it);
if( myFile.find(" -> ",0,TRUE) != -1)
myFile = myFile.left( myFile.find(" -> ",0,TRUE));
QString f = currentDir.canonicalPath();
if(f.right(1).find("/",0,TRUE) == -1)
f+="/";
f+=myFile;
if(QDir(f).exists() && !QFileInfo(f).isSymLink() ) {
switch ( QMessageBox::warning(this,tr("Delete"),tr("Do you really want to delete\n")+f+
"\nand all it's contents ?"
,tr("Yes"),tr("No"),0,0,1) ) {
case 0: {
f=f.left(f.length()-1);
QString cmd="rm -rf "+f;
system( cmd.latin1());
populateLocalView();
}
break;
case 1:
// exit
break;
};
} else {
switch ( QMessageBox::warning(this,tr("Delete"),tr("Do you really want to delete\n")+f
+" ?",tr("Yes"),tr("No"),0,0,1) ) {
case 0: {
QString cmd="rm "+f;
QFile file(f);
file.remove();
// system( cmd.latin1());
populateLocalView();
}
break;
case 1:
// exit
break;
};
}
-
}
}
void AdvancedFm::remoteDelete()
{
QStringList curFileList = getPath();
QString myFile;
for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
myFile = (*it);
if(myFile.find(" -> ",0,TRUE) != -1)
myFile = myFile.left(myFile.find(" -> ",0,TRUE));
QString f = currentDir.canonicalPath();
if(f.right(1).find("/",0,TRUE) == -1)
f+="/";
f+=myFile;
if(QDir(f).exists() && !QFileInfo(f).isSymLink() ) {
switch ( QMessageBox::warning(this,tr("Delete"),tr("Do you really want to delete\n")+f+
"\nand all it's contents ?",
tr("Yes"),tr("No"),0,0,1) ) {
case 0: {
f=f.left(f.length()-1);
QString cmd="rm -rf "+f;
system( cmd.latin1());
populateRemoteView();
}
break;
case 1:
// exit
break;
};
} else {
switch ( QMessageBox::warning(this,tr("Delete"),tr("Do you really want to delete\n")+f
+" ?",tr("Yes"),tr("No"),0,0,1) ) {
case 0: {
QString cmd="rm "+f;
QFile file(f);
file.remove();
// system( cmd.latin1());
populateRemoteView();
}
break;
case 1:
// exit
break;
};
}
@@ -1095,205 +1094,241 @@ void AdvancedFm::SDButtonPushed() {
}
void AdvancedFm::CFButtonPushed() {
QString current = "/mnt/cf";
chdir( current.latin1() );
if (TabWidget->currentPageIndex() == 0) {
currentDir.cd( current, TRUE);
populateLocalView();
} else {
currentRemoteDir.cd( current, TRUE);
populateRemoteView();
}
update();
}
void AdvancedFm::upDir()
{
if (TabWidget->currentPageIndex() == 0) {
QString current = currentDir.canonicalPath();
QDir dir(current);
dir.cdUp();
current = dir.canonicalPath();
chdir( current.latin1() );
currentDir.cd( current, TRUE);
populateLocalView();
update();
} else {
QString current = currentRemoteDir.canonicalPath();
QDir dir(current);
dir.cdUp();
current = dir.canonicalPath();
chdir( current.latin1() );
currentRemoteDir.cd( current, TRUE);
populateRemoteView();
update();
}
}
void AdvancedFm::copy()
{
QStringList curFileList = getPath();
QString curFile;
if (TabWidget->currentPageIndex() == 0) {
for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
- QString destFile = currentRemoteDir.canonicalPath()+"/"+(*it);
- curFile = currentDir.canonicalPath()+"/"+(*it);
+ QString destFile = currentRemoteDir.canonicalPath();
+ if(destFile.right(1).find("/",0,TRUE) == -1)
+ destFile+="/";
+ destFile +=(*it);
+ curFile = currentDir.canonicalPath();
+ if(curFile.right(1).find("/",0,TRUE) == -1)
+ curFile +="/";
+ curFile +=(*it);
QFile f(destFile);
if( f.exists())
f.remove();
if(!copyFile(destFile, curFile) )
qWarning("nothin doing");
}
populateRemoteView();
TabWidget->setCurrentPage(1);
} else {
for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
- QString destFile = currentDir.canonicalPath()+"/"+(*it);
- curFile = currentRemoteDir.canonicalPath()+"/"+(*it);
+ QString destFile = currentDir.canonicalPath();
+ if(destFile.right(1).find("/",0,TRUE) == -1)
+ destFile+="/";
+ destFile +=(*it);
+ curFile = currentRemoteDir.canonicalPath();
+ if(curFile.right(1).find("/",0,TRUE) == -1)
+ curFile +="/";
+ curFile +=(*it);
QFile f(destFile);
if( f.exists())
f.remove();
if(!copyFile(destFile, curFile) )
qWarning("nothin doing");
}
populateLocalView();
TabWidget->setCurrentPage(0);
}
}
void AdvancedFm::copyAs()
{
QStringList curFileList = getPath();
QString curFile;
InputDialog *fileDlg;
fileDlg = new InputDialog(this,tr("Copy As"),TRUE, 0);
if (TabWidget->currentPageIndex() == 0) {
for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
- QString destFile = *it;
- curFile = currentDir.canonicalPath()+"/"+(*it);
+ QString destFile;
+ curFile = currentDir.canonicalPath();
+ if(curFile.right(1).find("/",0,TRUE) == -1)
+ curFile +="/";
+ curFile+=(*it);
// InputDialog *fileDlg;
// fileDlg = new InputDialog(this,tr("Copy As"),TRUE, 0);
fileDlg->setInputText((const QString &) destFile );
fileDlg->exec();
if( fileDlg->result() == 1 ) {
QString filename = fileDlg->LineEdit1->text();
- destFile = currentRemoteDir.canonicalPath()+"/"+destFile;
+ destFile = currentRemoteDir.canonicalPath();
+ if(destFile.right(1).find("/",0,TRUE) == -1)
+ destFile+="/";
+ destFile +=(*it);
QFile f(destFile);
if( f.exists())
f.remove();
if(!copyFile(destFile, curFile) )
qWarning("nothin doing");
}
}
populateRemoteView();
TabWidget->setCurrentPage(1);
} else {
if (TabWidget->currentPageIndex() == 0) {
for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
- curFile = currentDir.canonicalPath()+"/"+(*it);
- QString destFile = *it;
+ curFile = currentDir.canonicalPath();
+ if(curFile.right(1).find("/",0,TRUE) == -1)
+ curFile +="/";
+ curFile+=(*it);
+ QString destFile;
fileDlg->setInputText((const QString &) destFile);
fileDlg->exec();
if( fileDlg->result() == 1 ) {
QString filename = fileDlg->LineEdit1->text();
- destFile = currentDir.canonicalPath()+"/"+destFile;
+ destFile = currentDir.canonicalPath();
+ if(destFile.right(1).find("/",0,TRUE) == -1)
+ destFile+="/";
+ destFile +=(*it);
QFile f(destFile);
if( f.exists())
f.remove();
if(!copyFile(destFile, curFile) )
qWarning("nothin doing");
}
}
populateLocalView();
TabWidget->setCurrentPage(0);
}
}
}
void AdvancedFm::move() {
QStringList curFileList = getPath();
QString curFile;
// qDebug(curFile);
QString destFile;
if (TabWidget->currentPageIndex() == 0) {
for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
- QString destFile = currentRemoteDir.canonicalPath() + "/" + *it;
- curFile = currentDir.canonicalPath()+"/"+(*it);
+ QString destFile = currentRemoteDir.canonicalPath();
+ if(destFile.right(1).find("/",0,TRUE) == -1)
+ destFile+="/";
+ destFile +=(*it);
+ curFile = currentDir.canonicalPath();
qDebug("Destination file is "+destFile);
+ if(curFile.right(1).find("/",0,TRUE) == -1)
+ curFile +="/";
+ curFile+=(*it);
QFile f(destFile);
if( f.exists())
f.remove();
if(!copyFile( destFile, curFile) ) {
QMessageBox::message(tr("Note"),tr("Could not move\n"+curFile));
return;
}
QFile::remove(curFile);
}
TabWidget->setCurrentPage(1);
} else {
for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
- QString destFile = currentRemoteDir.canonicalPath() + "/" + *it;
+ QString destFile = currentRemoteDir.canonicalPath();
+ if(destFile.right(1).find("/",0,TRUE) == -1)
+ destFile+="/";
+ destFile +=(*it);
qDebug("Destination file is "+destFile);
- curFile = currentDir.canonicalPath()+"/"+(*it);
+ curFile = currentDir.canonicalPath();
+ if(curFile.right(1).find("/",0,TRUE) == -1)
+ curFile +="/";
+ curFile+=(*it);
QFile f(destFile);
if( f.exists())
f.remove();
if(!copyFile(destFile, curFile) ) {
QMessageBox::message(tr("Note"),tr("Could not move\n"+curFile));
return;
}
QFile::remove(curFile);
TabWidget->setCurrentPage(0);
}
}
populateRemoteView();
populateLocalView();
}
bool AdvancedFm::copyFile( const QString & dest, const QString & src )
{
char bf[ 50000 ];
int bytesRead;
bool success = TRUE;
struct stat status;
QFile s( src );
QFile d( dest );
if( s.open( IO_ReadOnly | IO_Raw ) && d.open( IO_WriteOnly | IO_Raw ) ) {
while( (bytesRead = s.readBlock( bf, sizeof( bf ) )) == sizeof( bf ) ) {
if( d.writeBlock( bf, sizeof( bf ) ) != sizeof( bf ) ){
success = FALSE;
break;
}
}
if( success && (bytesRead > 0) ){
d.writeBlock( bf, bytesRead );
}
} else {
success = FALSE;
}
// Set file permissions
if( stat( (const char *) src, &status ) == 0 ){
chmod( (const char *) dest, status.st_mode );
}
return success;
}