author | llornkcor <llornkcor> | 2003-07-17 13:14:32 (UTC) |
---|---|---|
committer | llornkcor <llornkcor> | 2003-07-17 13:14:32 (UTC) |
commit | c72b7e02defdbcc1f2b6b4ff38f256486cfaeec7 (patch) (side-by-side diff) | |
tree | 086f295d49a8d88308c536a8038aa0ba6c179a3d /noncore/apps/advancedfm/advancedfmMenu.cpp | |
parent | 6ca1d7605597f4b8a7559167e5cf3d6e093805cd (diff) | |
download | opie-c72b7e02defdbcc1f2b6b4ff38f256486cfaeec7.zip opie-c72b7e02defdbcc1f2b6b4ff38f256486cfaeec7.tar.gz opie-c72b7e02defdbcc1f2b6b4ff38f256486cfaeec7.tar.bz2 |
some crazy characters fixing
Diffstat (limited to 'noncore/apps/advancedfm/advancedfmMenu.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/apps/advancedfm/advancedfmMenu.cpp | 267 |
1 files changed, 122 insertions, 145 deletions
diff --git a/noncore/apps/advancedfm/advancedfmMenu.cpp b/noncore/apps/advancedfm/advancedfmMenu.cpp index 9f21245..00d0e07 100644 --- a/noncore/apps/advancedfm/advancedfmMenu.cpp +++ b/noncore/apps/advancedfm/advancedfmMenu.cpp @@ -17,55 +17,57 @@ #include <opie/oprocess.h> #include <qpe/lnkproperties.h> #include <qpe/qpeapplication.h> #include <qpe/resource.h> #include <qpe/qcopenvelope_qws.h> #include <qpe/applnk.h> #include <qpe/ir.h> #include <qmessagebox.h> #include <qmultilineedit.h> #include <qstring.h> #include <qlayout.h> #include <qpixmap.h> #include <qcombobox.h> #include <qpopupmenu.h> #include <qtabwidget.h> #include <qtoolbutton.h> #include <qtabwidget.h> #include <qlineedit.h> #include <qlistview.h> +#include <errno.h> #include <stdlib.h> #include <unistd.h> #include <sys/stat.h> #include <dirent.h> #include <sys/sendfile.h> #include <fcntl.h> + void AdvancedFm::doDirChange() { ListClicked( CurrentView()->currentItem()); } void AdvancedFm::showMenuHidden() { if (b) { CurrentDir()->setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All); OtherDir()->setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All); fileMenu->setItemChecked( fileMenu->idAt(0),TRUE); // b=FALSE; } else { CurrentDir()->setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All); OtherDir()->setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All); fileMenu->setItemChecked( fileMenu->idAt(0),FALSE); // b=TRUE; } rePopulate(); // if(b) qDebug("<<<<<<<<<<<<<<<<<<<<<<<<<<<< true"); @@ -149,131 +151,127 @@ void AdvancedFm::runText() if( curFile.find("@",0,TRUE) !=-1 || curFile.find("->",0,TRUE) !=-1 ) //if symlink curFile = dealWithSymName((const QString&)curFile); curFile = CurrentDir()->canonicalPath()+"/"+curFile; QCopEnvelope e("QPE/Application/textedit", "setDocument(QString)" ); e << curFile; } } void AdvancedFm::makeDir() { InputDialog *fileDlg; fileDlg = new InputDialog(this,tr("Make Directory"),TRUE, 0); fileDlg->exec(); if( fileDlg->result() == 1 ) { QDir *thisDir = CurrentDir(); QString filename = fileDlg->LineEdit1->text(); thisDir->mkdir( thisDir->canonicalPath()+"/"+filename); } populateView(); } void AdvancedFm::doDelete() { - - QStringList curFileList = getPath(); - bool doMsg=true; - int count = curFileList.count(); - if( count > 0) - { - if(count > 1 ) - { - QString msg; - msg=tr("Really delete\n%1 files?").arg(count); - switch ( QMessageBox::warning(this,tr("Delete"),msg - ,tr("Yes"),tr("No"),0,0,1) ) - { - case 0: - doMsg=false; - break; - case 1: - return; - break; - }; + QStringList curFileList = getPath(); + bool doMsg=true; + int count = curFileList.count(); + if( count > 0) { + if(count > 1 ) { + QString msg; + msg=tr("Really delete\n%1 files?").arg(count); + switch ( QMessageBox::warning(this,tr("Delete"),msg + ,tr("Yes"),tr("No"),0,0,1) ) + { + case 0: + doMsg=false; + break; + case 1: + return; + break; + }; } 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() ) //if file is a directory - { - switch ( QMessageBox::warning( this, tr("Delete Directory?"), - tr("Really delete %1\nand all it's contents ?" ).arg( f ) , - tr("Yes"), - tr("No"), - 0, - 0, - 1) ) - { - case 0: - { - f=f.left(f.length()-1); - QString cmd="rm -rf "+f; - startProcess( (const QString)cmd.latin1() ); - populateView(); - } - break; - case 1: - // exit - break; - }; - } else { - if(doMsg) { - switch ( QMessageBox::warning(this,tr("Delete"), - tr("Really delete\n%1?").arg( f ), - tr("Yes"), - tr("No"), - 0, - 0, - 1) ) { - case 1: - return; - break; - }; - } - QString cmd="rm "+f; - QFile file(f); - if(QFileInfo(myFile).fileName().find("../",0,TRUE)==-1) { - qDebug("remove link files "+f); -// AppLnk lnk(f); -// qDebug(lnk.linkFile()); -// lnk.removeLinkFile(); - file.remove(); - } + 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() ) { + //if file is a directory + + switch ( QMessageBox::warning( this, tr("Delete Directory?"), + tr("Really delete %1\nand all it's contents ?" ).arg( f ) , + tr("Yes"), tr("No"), 0, 0, 1) ) { + case 0: + { + f=f.left(f.length()-1); + QString cmd="rm -rf "+f; + startProcess( (const QString)cmd.latin1() ); + populateView(); + } + break; + case 1: + // exit + break; + }; + + } else { + if(doMsg) { + switch ( QMessageBox::warning(this,tr("Delete"), + tr("Really delete\n%1?").arg( myFile ), + tr("Yes"), tr("No"), 0, 0, 1) ) { + case 1: + return; + break; + }; + } + + QString cmd="rm "+f; + QFile file(f); + QFileInfo fi(myFile); + if( fi.fileName().find("../",0,TRUE)==-1) { + qDebug("remove link files "+myFile); + +// DocLnk lnk(f); + DocLnk *lnk; + lnk = new DocLnk(f); + qDebug("Deleting doclnk " + lnk->linkFile()); + if(lnk->isValid()) + lnk->removeLinkFile(); + // delete lnk; + file.remove(); + } + } } - } - } - populateView(); + } + populateView(); } void AdvancedFm::filePerms() { QStringList curFileList = getPath(); QString filePath; filePath = CurrentDir()->canonicalPath()+"/"; for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { filePermissions *filePerm; filePerm = new filePermissions(this, "Permissions",true,0,(const QString &)(filePath+*it)); filePerm->showMaximized(); filePerm->exec(); if( filePerm) delete filePerm; } populateView(); } void AdvancedFm::doProperties() { #if defined(QT_QWS_OPIE) @@ -346,50 +344,49 @@ void AdvancedFm::copy() curFile = thisDir->canonicalPath()+"/"+ item; destFile = thatDir->canonicalPath()+"/"+ item; qDebug("Destination file is "+destFile); qDebug("CurrentFile file is " + curFile); QFile f(destFile); if( f.exists()) { if(doMsg) { switch ( QMessageBox::warning(this,tr("File Exists!"), tr("%1 exists. Ok to overwrite?").arg( item ), tr("Yes"),tr("No"),0,0,1) ) { case 1: return; break; }; } f.remove(); } - if( !copyFile( curFile, destFile) ) - { + if( !copyFile( curFile, destFile) ) { QMessageBox::message("AdvancedFm", tr( "Could not copy %1 to %2").arg( curFile ).arg( destFile ) ); return; } } setOtherTabCurrent(); populateView(); } } void AdvancedFm::copyAs() { qApp->processEvents(); QStringList curFileList = getPath(); QString curFile, item; InputDialog *fileDlg; QDir *thisDir = CurrentDir(); QDir *thatDir = OtherDir(); for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { QString destFile; @@ -399,50 +396,49 @@ void AdvancedFm::copyAs() fileDlg->setInputText((const QString &) destFile ); fileDlg->exec(); if( fileDlg->result() == 1 ) { QString filename = fileDlg->LineEdit1->text(); destFile = thatDir->canonicalPath()+"/"+filename; QFile f( destFile); if( f.exists()) { switch (QMessageBox::warning(this,tr("File Exists!"), item+tr("\nexists. Ok to overwrite?"), tr("Yes"),tr("No"),0,0,1) ) { case 0: f.remove(); break; case 1: return; break; }; } - if( !copyFile( curFile, destFile) ) - { + if( !copyFile( curFile, destFile) ) { QMessageBox::message("AdvancedFm",tr("Could not copy\n") +curFile +tr("to\n")+destFile); return; } } delete fileDlg; } setOtherTabCurrent(); populateView(); } void AdvancedFm::copySameDir() { qApp->processEvents(); QStringList curFileList = getPath(); QString curFile, item, destFile; InputDialog *fileDlg; QDir *thisDir = CurrentDir(); for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { item=(*it); @@ -452,162 +448,150 @@ void AdvancedFm::copySameDir() fileDlg->setInputText((const QString &) destFile ); fileDlg->exec(); if( fileDlg->result() == 1 ) { QString filename = fileDlg->LineEdit1->text(); destFile = thisDir->canonicalPath()+"/"+filename; QFile f(destFile); if( f.exists()) { switch (QMessageBox::warning(this,tr("Delete"), destFile+tr(" already exists.\nDo you really want to delete it?"), tr("Yes"),tr("No"),0,0,1) ) { case 0: f.remove(); break; case 1: return; break; }; } - if(!copyFile( curFile,destFile) ) - { + if(!copyFile( curFile,destFile) ) { QMessageBox::message("AdvancedFm",tr("Could not copy\n") +curFile +tr("to\n")+destFile); return; } qDebug("copy "+curFile+" as "+destFile); } delete fileDlg; } populateView(); } void AdvancedFm::move() { qApp->processEvents(); QStringList curFileList = getPath(); if( curFileList.count() > 0) { QString curFile, destFile, item; QDir *thisDir = CurrentDir(); QDir *thatDir = OtherDir(); for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { item=(*it); QString destFile = thatDir->canonicalPath(); if(destFile.right(1).find("/",0,TRUE) == -1) destFile+="/"; destFile += item; qDebug("Destination file is "+destFile); curFile = thisDir->canonicalPath(); if(curFile.right(1).find("/",0,TRUE) == -1) curFile +="/"; curFile+= item; qDebug("CurrentFile file is " + curFile); QFile f( curFile); if( f.exists()) { - if( !copyFile( curFile, destFile) ) - { + if( !copyFile( curFile, destFile) ) { QMessageBox::message(tr("Note"),tr("Could not move\n")+curFile); return; } else QFile::remove(curFile); } } } setOtherTabCurrent(); populateView(); // populateLocalView(); } bool AdvancedFm::copyFile( const QString & src, const QString & dest ) { -// char bf[ 50000 ]; -// int bytesRead; bool success = true; struct stat status; - -// QFile s( src ); -// QFile d( dest ); - + QFile srcFile(src); + QFile destFile(dest); + int err=0; int read_fd=0; int write_fd=0; struct stat stat_buf; off_t offset = 0; - read_fd = ::open(src.latin1(), O_RDONLY); + if(!srcFile.open( IO_ReadOnly|IO_Raw)) { + qWarning("open failed"); + return success = false; + } + read_fd = srcFile.handle(); if(read_fd != -1) { fstat (read_fd, &stat_buf); - write_fd = ::open(dest.latin1(), O_WRONLY | O_CREAT, stat_buf.st_mode); + if( !destFile.open( IO_WriteOnly|IO_Raw ) ) { + qWarning("destfile open failed"); + return success = false; + } + write_fd = destFile.handle(); if(write_fd != -1) { - if(sendfile(write_fd, read_fd, &offset, stat_buf.st_size) == -1) { - success = false; + err =sendfile(write_fd, read_fd, &offset, stat_buf.st_size); + if( err == -1) { + QString msg; + switch(err) { + case EBADF : msg = "The input file was not opened for reading or the output file was not opened for writing. "; + case EINVAL: msg = "Descriptor is not valid or locked. "; + case ENOMEM: msg = "Insufficient memory to read from in_fd."; + case EIO: msg = "Unspecified error while reading from in_fd."; + }; + success = false; + qWarning(msg); } } else { success = false; } } else { success = false; } - - ::close (read_fd); - ::close (write_fd); - - -// 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; -// } - + srcFile.close(); + destFile.close(); // Set file permissions - if( stat( (const char *) src, &status ) == 0 ) - { + if( stat( (const char *) src, &status ) == 0 ) { chmod( (const char *) dest, status.st_mode ); } return success; } void AdvancedFm::runCommand() { QDir *thisDir = CurrentDir(); QString curFile; curFile = thisDir->canonicalPath() +"/"+ CurrentView()->currentItem()->text(0); InputDialog *fileDlg; fileDlg = new InputDialog(this,tr("Run Command"),TRUE, 0); fileDlg->setInputText(curFile); fileDlg->exec(); //QString command; if( fileDlg->result() == 1 ) { qDebug(fileDlg->LineEdit1->text()); QStringList command; @@ -691,72 +675,65 @@ void AdvancedFm::mkSym() QString destName = thatDir->canonicalPath()+"/"+(*it); if(destName.right(1) == "/") { destName = destName.left( destName.length() -1); } QString curFile = thisDir->canonicalPath()+"/"+(*it); if( curFile.right(1) == "/") { curFile = curFile.left( curFile.length() -1); } cmd = "ln -s "+curFile+" "+destName; qDebug(cmd); startProcess( (const QString)cmd ); } setOtherTabCurrent(); populateView(); } } void AdvancedFm::doBeam() { - Ir ir; - if(!ir.supported()) - { - } - else - { + Ir ir; + if(!ir.supported()) { + } else { QStringList curFileList = getPath(); - if( curFileList.count() > 0) - { - for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) - { - - QString curFile = CurrentDir()->canonicalPath()+"/"+(*it); - if( curFile.right(1) == "/") - { - curFile = curFile.left( curFile.length() -1); - } - Ir *file = new Ir(this, "IR"); - connect(file, SIGNAL(done(Ir*)), this, SLOT( fileBeamFinished( Ir * ))); - file->send( curFile, curFile ); + if( curFileList.count() > 0) { + for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { + QString curFile = (*it); + QString curFilePath = CurrentDir()->canonicalPath()+"/"+curFile; + if( curFilePath.right(1) == "/") { + curFilePath = curFilePath.left( curFilePath.length() -1); } - } - } - + Ir *file = new Ir(this, "IR"); + connect(file, SIGNAL(done(Ir*)), this, SLOT( fileBeamFinished( Ir * ))); + file->send( curFilePath, curFile ); + } + } + } } void AdvancedFm::fileBeamFinished( Ir *) { QMessageBox::message( tr("Advancedfm Beam out"), tr("Ir sent.") ,tr("Ok") ); } void AdvancedFm::selectAll() { // if (TabWidget->currentTab() == 0) { QListView *thisView = CurrentView(); thisView->selectAll(true); thisView->setSelected( thisView->firstChild(),false); // } else { // Remote_View->selectAll(true); // Remote_View->setSelected( Remote_View->firstChild(),false); // } } void AdvancedFm::startProcess(const QString & cmd) { QStringList command; OProcess *process; process = new OProcess(); |