summaryrefslogtreecommitdiff
path: root/noncore/apps/advancedfm/advancedfmMenu.cpp
Side-by-side diff
Diffstat (limited to 'noncore/apps/advancedfm/advancedfmMenu.cpp') (more/less context) (show whitespace changes)
-rw-r--r--noncore/apps/advancedfm/advancedfmMenu.cpp317
1 files changed, 119 insertions, 198 deletions
diff --git a/noncore/apps/advancedfm/advancedfmMenu.cpp b/noncore/apps/advancedfm/advancedfmMenu.cpp
index 544350c..c0be948 100644
--- a/noncore/apps/advancedfm/advancedfmMenu.cpp
+++ b/noncore/apps/advancedfm/advancedfmMenu.cpp
@@ -46,61 +46,50 @@
#include <fcntl.h>
-void AdvancedFm::doDirChange()
-{
+void AdvancedFm::doDirChange() {
+ QString pathItem = CurrentView()->currentItem()->text(0);
+ if( pathItem == "../") {
ListClicked( CurrentView()->currentItem());
+ } else {
+ if( pathItem.find(" -> ",0,TRUE) != -1)
+ pathItem = dealWithSymName((const QString&)pathItem)+"/";
+// qWarning(pathItem);
+ gotoDirectory( CurrentDir()->path()+"/"+pathItem.left( pathItem.length() - 1) );
+ }
}
-void AdvancedFm::showMenuHidden()
-{
- if (b)
- {
+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
- {
+ } 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");
b = !b;
}
-void AdvancedFm::showHidden()
-{
- if (b)
- {
+void AdvancedFm::showHidden() {
+ 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
- {
+ } 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();
}
-QString AdvancedFm::dealWithSymName(const QString &fileName)
-{
+QString AdvancedFm::dealWithSymName(const QString &fileName) {
QString strItem = fileName;
return strItem.right( (strItem.length() - strItem.find("->",0,TRUE)) - 4);
}
-void AdvancedFm::runThis()
-{
+void AdvancedFm::runThis() {
+ if( !CurrentView()->currentItem()) return;
QString fs;
QDir *thisDir = CurrentDir();
@@ -111,12 +100,11 @@ void AdvancedFm::runThis()
curFile = dealWithSymName((const QString&)curFile);
- if(curFile != "../")
- {
+ if(curFile != "../") {
fs = getFileSystemType((const QString &) path);
QFileInfo fileInfo( path + "/" + curFile);
- qDebug( fileInfo.owner());
+// qDebug( fileInfo.owner());
if( (fileInfo.permission( QFileInfo::ExeUser)
| fileInfo.permission( QFileInfo::ExeGroup)
@@ -124,29 +112,23 @@ void AdvancedFm::runThis()
| fs == "vfat" && fileInfo.filePath().contains("/bin") ) {
QCopEnvelope e("QPE/System", "execute(QString)" );
e << curFile;
- }
- else
- {
+ } else {
curFile = path + "/" + curFile;
DocLnk nf(curFile);
QString execStr = nf.exec();
- qDebug( execStr);
- if( execStr.isEmpty() )
- {
- }
- else
- {
+// qDebug( execStr);
+ if( execStr.isEmpty() ) {
+ } else {
nf.execute();
}
}
}
}
-void AdvancedFm::runText()
-{
+void AdvancedFm::runText() {
+ if( !CurrentView()->currentItem()) return;
QString curFile = CurrentView()->currentItem()->text(0);
- if(curFile != "../")
- {
+ if(curFile != "../") {
if( curFile.find("@",0,TRUE) !=-1 || curFile.find("->",0,TRUE) !=-1 ) //if symlink
curFile = dealWithSymName((const QString&)curFile);
curFile = CurrentDir()->canonicalPath()+"/"+curFile;
@@ -155,13 +137,11 @@ void AdvancedFm::runText()
}
}
-void AdvancedFm::makeDir()
-{
+void AdvancedFm::makeDir() {
InputDialog *fileDlg;
fileDlg = new InputDialog(this,tr("Make Directory"),TRUE, 0);
fileDlg->exec();
- if( fileDlg->result() == 1 )
- {
+ if( fileDlg->result() == 1 ) {
QDir *thisDir = CurrentDir();
QString filename = fileDlg->LineEdit1->text();
thisDir->mkdir( thisDir->canonicalPath()+"/"+filename);
@@ -169,8 +149,7 @@ void AdvancedFm::makeDir()
populateView();
}
-void AdvancedFm::doDelete()
-{
+void AdvancedFm::doDelete() {
QStringList curFileList = getPath();
bool doMsg=true;
int count = curFileList.count();
@@ -235,12 +214,12 @@ void AdvancedFm::doDelete()
QFile file(f);
QFileInfo fi(myFile);
if( fi.fileName().find("../",0,TRUE)==-1) {
- qDebug("remove link files "+myFile);
+// qDebug("remove link files "+myFile);
// DocLnk lnk(f);
DocLnk *lnk;
lnk = new DocLnk(f);
- qDebug("Deleting doclnk " + lnk->linkFile());
+// qDebug("Deleting doclnk " + lnk->linkFile());
if(lnk->isValid())
lnk->removeLinkFile();
// delete lnk;
@@ -252,15 +231,13 @@ void AdvancedFm::doDelete()
populateView();
}
-void AdvancedFm::filePerms()
-{
+void AdvancedFm::filePerms() {
QStringList curFileList = getPath();
QString filePath;
filePath = CurrentDir()->canonicalPath()+"/";
- for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it )
- {
+ 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();
@@ -271,8 +248,7 @@ void AdvancedFm::filePerms()
populateView();
}
-void AdvancedFm::doProperties()
-{
+void AdvancedFm::doProperties() {
#if defined(QT_QWS_OPIE)
QStringList curFileList = getPath();
@@ -280,11 +256,10 @@ void AdvancedFm::doProperties()
QString filePath;
filePath = CurrentDir()->canonicalPath()+"/";
- qDebug("%d",curFileList.count());
+// qDebug("%d",curFileList.count());
- for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it )
- {
- qDebug((filePath+*it));
+ for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
+// qDebug((filePath+*it));
DocLnk lnk( (filePath+*it));
LnkProperties prop( &lnk );
prop.showMaximized();
@@ -294,8 +269,7 @@ void AdvancedFm::doProperties()
}
-void AdvancedFm::upDir()
-{
+void AdvancedFm::upDir() {
QDir *thisDir = CurrentDir();
QString current = thisDir->canonicalPath();
QDir dir(current);
@@ -308,8 +282,7 @@ void AdvancedFm::upDir()
update();
}
-void AdvancedFm::copy()
-{
+void AdvancedFm::copy() {
qApp->processEvents();
QStringList curFileList = getPath();
@@ -335,8 +308,7 @@ void AdvancedFm::copy()
}
QString curFile, item, destFile;
- for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it )
- {
+ for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
item=(*it);
if(item.find("->",0,TRUE)) //symlink
item = item.left(item.find("->",0,TRUE));
@@ -344,18 +316,15 @@ void AdvancedFm::copy()
curFile = thisDir->canonicalPath()+"/"+ item;
destFile = thatDir->canonicalPath()+"/"+ item;
- qDebug("Destination file is "+destFile);
- qDebug("CurrentFile file is " + curFile);
+// qDebug("Destination file is "+destFile);
+// qDebug("CurrentFile file is " + curFile);
QFile f(destFile);
- if( f.exists())
- {
- if(doMsg)
- {
+ 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) )
- {
+ tr("Yes"),tr("No"),0,0,1) ) {
case 1:
return;
break;
@@ -370,13 +339,12 @@ void AdvancedFm::copy()
return;
}
}
+ rePopulate();
setOtherTabCurrent();
- populateView();
}
}
-void AdvancedFm::copyAs()
-{
+void AdvancedFm::copyAs() {
qApp->processEvents();
QStringList curFileList = getPath();
@@ -386,8 +354,7 @@ void AdvancedFm::copyAs()
QDir *thisDir = CurrentDir();
QDir *thatDir = OtherDir();
- for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it )
- {
+ for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
QString destFile;
item=(*it);
curFile = thisDir->canonicalPath()+"/"+(*it);
@@ -396,18 +363,15 @@ void AdvancedFm::copyAs()
fileDlg->setInputText((const QString &) destFile );
fileDlg->exec();
- if( fileDlg->result() == 1 )
- {
+ if( fileDlg->result() == 1 ) {
QString filename = fileDlg->LineEdit1->text();
destFile = thatDir->canonicalPath()+"/"+filename;
QFile f( destFile);
- if( f.exists())
- {
+ if( f.exists()) {
switch (QMessageBox::warning(this,tr("File Exists!"),
item+tr("\nexists. Ok to overwrite?"),
- tr("Yes"),tr("No"),0,0,1) )
- {
+ tr("Yes"),tr("No"),0,0,1) ) {
case 0:
f.remove();
break;
@@ -425,12 +389,11 @@ void AdvancedFm::copyAs()
delete fileDlg;
}
+ rePopulate();
setOtherTabCurrent();
- populateView();
}
-void AdvancedFm::copySameDir()
-{
+void AdvancedFm::copySameDir() {
qApp->processEvents();
QStringList curFileList = getPath();
QString curFile, item, destFile;
@@ -438,8 +401,7 @@ void AdvancedFm::copySameDir()
QDir *thisDir = CurrentDir();
- for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it )
- {
+ for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
item=(*it);
curFile = thisDir->canonicalPath()+"/"+ item;
@@ -447,15 +409,13 @@ void AdvancedFm::copySameDir()
fileDlg->setInputText((const QString &) destFile );
fileDlg->exec();
- if( fileDlg->result() == 1 )
- {
+ if( fileDlg->result() == 1 ) {
QString filename = fileDlg->LineEdit1->text();
destFile = thisDir->canonicalPath()+"/"+filename;
QFile f(destFile);
- if( f.exists())
- {
+ 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) ) {
@@ -474,39 +434,36 @@ void AdvancedFm::copySameDir()
return;
}
- qDebug("copy "+curFile+" as "+destFile);
+// qDebug("copy "+curFile+" as "+destFile);
}
delete fileDlg;
}
populateView();
}
-void AdvancedFm::move()
-{
+void AdvancedFm::move() {
qApp->processEvents();
QStringList curFileList = getPath();
- if( curFileList.count() > 0)
- {
+ if( curFileList.count() > 0) {
QString curFile, destFile, item;
QDir *thisDir = CurrentDir();
QDir *thatDir = OtherDir();
- for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it )
- {
+ 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);
+// qDebug("Destination file is "+destFile);
curFile = thisDir->canonicalPath();
if(curFile.right(1).find("/",0,TRUE) == -1)
curFile +="/";
curFile+= item;
- qDebug("CurrentFile file is " + curFile);
+// qDebug("CurrentFile file is " + curFile);
QFile f( curFile);
if( f.exists()) {
@@ -519,13 +476,11 @@ void AdvancedFm::move()
}
}
- populateView();
+ rePopulate();
setOtherTabCurrent();
- populateView();
}
-bool AdvancedFm::copyFile( const QString & src, const QString & dest )
-{
+bool AdvancedFm::copyFile( const QString & src, const QString & dest ) {
bool success = true;
struct stat status;
QFile srcFile(src);
@@ -536,14 +491,14 @@ bool AdvancedFm::copyFile( const QString & src, const QString & dest )
struct stat stat_buf;
off_t offset = 0;
if(!srcFile.open( IO_ReadOnly|IO_Raw)) {
- qWarning("open failed");
+// qWarning("open failed");
return success = false;
}
read_fd = srcFile.handle();
if(read_fd != -1) {
fstat (read_fd, &stat_buf);
if( !destFile.open( IO_WriteOnly|IO_Raw ) ) {
- qWarning("destfile open failed");
+// qWarning("destfile open failed");
return success = false;
}
write_fd = destFile.handle();
@@ -558,7 +513,7 @@ bool AdvancedFm::copyFile( const QString & src, const QString & dest )
case EIO: msg = "Unspecified error while reading from in_fd.";
};
success = false;
- qWarning(msg);
+// qWarning(msg);
}
} else {
success = false;
@@ -576,8 +531,8 @@ bool AdvancedFm::copyFile( const QString & src, const QString & dest )
return success;
}
-void AdvancedFm::runCommand()
-{
+void AdvancedFm::runCommand() {
+ if( !CurrentView()->currentItem()) return;
QDir *thisDir = CurrentDir();
QString curFile;
@@ -589,9 +544,8 @@ void AdvancedFm::runCommand()
fileDlg->exec();
//QString command;
- if( fileDlg->result() == 1 )
- {
- qDebug(fileDlg->LineEdit1->text());
+ if( fileDlg->result() == 1 ) {
+// qDebug(fileDlg->LineEdit1->text());
QStringList command;
command << "/bin/sh";
@@ -606,8 +560,8 @@ void AdvancedFm::runCommand()
}
}
-void AdvancedFm::runCommandStd()
-{
+void AdvancedFm::runCommandStd() {
+ if( !CurrentView()->currentItem()) return;
QString curFile;
QDir *thisDir = CurrentDir();
QListView *thisView = CurrentView();
@@ -619,15 +573,14 @@ void AdvancedFm::runCommandStd()
fileDlg->setInputText(curFile);
fileDlg->exec();
- if( fileDlg->result() == 1 )
- {
+ if( fileDlg->result() == 1 ) {
qApp->processEvents();
startProcess( (const QString)fileDlg->LineEdit1->text().latin1());
}
}
-void AdvancedFm::fileStatus()
-{
+void AdvancedFm::fileStatus() {
+ if( !CurrentView()->currentItem()) return;
QString curFile;
curFile = CurrentView()->currentItem()->text(0);
@@ -644,57 +597,48 @@ void AdvancedFm::fileStatus()
}
-void AdvancedFm::mkDir()
-{
+void AdvancedFm::mkDir() {
makeDir();
}
-void AdvancedFm::rn()
-{
+void AdvancedFm::rn() {
renameIt();
}
-void AdvancedFm::del()
-{
+void AdvancedFm::del() {
doDelete();
}
-void AdvancedFm::mkSym()
-{
+void AdvancedFm::mkSym() {
QString cmd;
QStringList curFileList = getPath();
- if( curFileList.count() > 0)
- {
+ if( curFileList.count() > 0) {
QDir *thisDir = CurrentDir();
QDir * thatDir = OtherDir();
- for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it )
- {
+ for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
QString destName = thatDir->canonicalPath()+"/"+(*it);
- if(destName.right(1) == "/")
- {
+ if(destName.right(1) == "/") {
destName = destName.left( destName.length() -1);
}
QString curFile = thisDir->canonicalPath()+"/"+(*it);
- if( curFile.right(1) == "/")
- {
+ if( curFile.right(1) == "/") {
curFile = curFile.left( curFile.length() -1);
}
cmd = "ln -s "+curFile+" "+destName;
- qDebug(cmd);
+// qDebug(cmd);
startProcess( (const QString)cmd );
}
+ rePopulate();
setOtherTabCurrent();
- populateView();
}
}
-void AdvancedFm::doBeam()
-{
+void AdvancedFm::doBeam() {
Ir ir;
if(!ir.supported()) {
} else {
@@ -714,25 +658,17 @@ void AdvancedFm::doBeam()
}
}
-void AdvancedFm::fileBeamFinished( Ir *)
-{
+void AdvancedFm::fileBeamFinished( Ir *) {
QMessageBox::message( tr("Advancedfm Beam out"), tr("Ir sent.") ,tr("Ok") );
}
-void AdvancedFm::selectAll()
-{
-// if (TabWidget->currentTab() == 0) {
+void AdvancedFm::selectAll() {
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)
-{
+void AdvancedFm::startProcess(const QString & cmd) {
QStringList command;
OProcess *process;
process = new OProcess();
@@ -750,79 +686,68 @@ void AdvancedFm::startProcess(const QString & cmd)
qDebug("could not start process");
}
-void AdvancedFm::processEnded(OProcess *)
-{
-// populateLocalView();
+void AdvancedFm::processEnded(OProcess *) {
populateView();
}
-void AdvancedFm::oprocessStderr(OProcess*, char *buffer, int buflen) {
- qWarning("received stderrt %d bytes", buflen);
+void AdvancedFm::oprocessStderr(OProcess*, char *buffer, int ) {
+// qWarning("received stderrt %d bytes", buflen);
QString lineStr = buffer;
-// lineStr=lineStr.left(lineStr.length()-1);
QMessageBox::warning( this, tr("Error"), lineStr ,tr("Ok") );
-
-// OutputEdit->append(lineStr);
-// OutputEdit->setCursorPosition( OutputEdit->numLines() + 1,0,FALSE);
}
-bool AdvancedFm::eventFilter( QObject * o, QEvent * e )
-{
- if ( o->inherits( "QLineEdit" ) )
- {
- if ( e->type() == QEvent::KeyPress )
- {
+bool AdvancedFm::eventFilter( QObject * o, QEvent * e ) {
+ if ( o->inherits( "QLineEdit" ) ) {
+ if ( e->type() == QEvent::KeyPress ) {
QKeyEvent *ke = (QKeyEvent*)e;
if ( ke->key() == Key_Return ||
- ke->key() == Key_Enter )
- {
+ ke->key() == Key_Enter ) {
okRename();
return true;
}
- else if ( ke->key() == Key_Escape )
- {
+ else if ( ke->key() == Key_Escape ) {
cancelRename();
return true;
}
}
- else if ( e->type() == QEvent::FocusOut )
- {
+ else if ( e->type() == QEvent::FocusOut ) {
cancelRename();
return true;
}
}
- if ( o->inherits( "QListView" ) )
- {
- if ( e->type() == QEvent::FocusOut )
- {
- printf("focusIn\n");
-
+ if ( o->inherits( "QListView" ) ) {
+ if ( e->type() == QEvent::FocusIn ) {
+ if( o == Local_View) { //keep track of which view
+ whichTab=1;
}
+ else {
+ whichTab=2;
+ }
+ }
+ OtherView()->setSelected( OtherView()->currentItem(), FALSE );//make sure there's correct selection
}
return QWidget::eventFilter( o, e );
}
-void AdvancedFm::cancelRename()
-{
- qDebug("cancel rename");
+void AdvancedFm::cancelRename() {
+// qDebug("cancel rename");
QListView * view;
view = CurrentView();
bool resetFocus = view->viewport()->focusProxy() == renameBox;
delete renameBox;
renameBox = 0;
- if ( resetFocus )
- {
+ if ( resetFocus ) {
view->viewport()->setFocusProxy( view);
view->setFocus();
}
}
-void AdvancedFm::doRename(QListView * view)
-{
+void AdvancedFm::doRename(QListView * view) {
+ if( !CurrentView()->currentItem()) return;
QRect r = view->itemRect( view->currentItem( ));
r = QRect( view->viewportToContents( r.topLeft() ), r.size() );
@@ -842,30 +767,26 @@ void AdvancedFm::doRename(QListView * view)
view->viewport()->setFocusProxy( renameBox );
renameBox->setFocus();
renameBox->show();
-
}
-void AdvancedFm::renameIt()
-{
+void AdvancedFm::renameIt() {
+ if( !CurrentView()->currentItem()) return;
QListView *thisView = CurrentView();
oldName = thisView->currentItem()->text(0);
doRename( thisView );
populateView();
}
-void AdvancedFm::okRename()
-{
+void AdvancedFm::okRename() {
+ if( !CurrentView()->currentItem()) return;
QString newName = renameBox->text();
cancelRename();
-// int tabs=0;
QListView * view = CurrentView();
QString path = CurrentDir()->canonicalPath() + "/";
oldName = path + oldName;
newName = path + newName;
- if( view->currentItem() == NULL)
- return;
if( rename( oldName.latin1(), newName.latin1())== -1)
QMessageBox::message(tr("Note"),tr("Could not rename"));
else
@@ -877,5 +798,5 @@ void AdvancedFm::okRename()
}
void AdvancedFm::openSearch() {
-
+ QMessageBox::message(tr("Note"),tr("Not Yet Implemented"));
}