-rw-r--r-- | noncore/apps/advancedfm/advancedfm.cpp | 118 | ||||
-rw-r--r-- | noncore/apps/advancedfm/advancedfm.h | 3 |
2 files changed, 83 insertions, 38 deletions
diff --git a/noncore/apps/advancedfm/advancedfm.cpp b/noncore/apps/advancedfm/advancedfm.cpp index 3a8c22d..f32031b 100644 --- a/noncore/apps/advancedfm/advancedfm.cpp +++ b/noncore/apps/advancedfm/advancedfm.cpp @@ -25,12 +25,13 @@ #include <qpe/qpeapplication.h> #include <qpe/resource.h> #include <qpe/qcopenvelope_qws.h> #include <qpe/config.h> #include <qpe/mimetype.h> #include <qpe/applnk.h> +#include <qpe/ir.h> //#include <opie/ofileselector.h> #include <qmultilineedit.h> #include <qtextstream.h> #include <qpushbutton.h> @@ -89,13 +90,13 @@ AdvancedFm::AdvancedFm( ) qpeDirButton= new QPushButton(Resource::loadIconSet("go"),"",this,"QPEButton"); qpeDirButton ->setFixedSize( QSize( 20, 20 ) ); connect( qpeDirButton ,SIGNAL(released()),this,SLOT( QPEButtonPushed()) ); qpeDirButton->setFlat(TRUE); layout->addMultiCellWidget( qpeDirButton , 0, 0, 2, 2); - + cfButton = new QPushButton(Resource::loadIconSet("cardmon/pcmcia"),"",this,"CFButton"); cfButton ->setFixedSize( QSize( 20, 20 ) ); connect( cfButton ,SIGNAL(released()),this,SLOT( CFButtonPushed()) ); cfButton->setFlat(TRUE); layout->addMultiCellWidget( cfButton , 0, 0, 3, 3); @@ -207,13 +208,13 @@ AdvancedFm::AdvancedFm( ) // tabLayout_3->setSpacing( 2); // tabLayout_3->setMargin( 2); // OFileSelector *fileSelector; // fileSelector = new OFileSelector(tab_3,0,0,"/","","*"); // tabLayout_3->addMultiCellWidget( fileSelector, 0, 0, 0, 3 ); - + // TabWidget->insertTab( tab_3, tr( "Files" ) ); currentDir.setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All); currentDir.setPath( QDir::currentDirPath()); currentRemoteDir.setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All); @@ -281,13 +282,13 @@ void AdvancedFm::populateLocalView() currentDir.setNameFilter(filterStr); QString fileL, fileS, fileDate; // qDebug(currentDir.canonicalPath()); // struct stat buf; // mode_t mode; QString fs= getFileSystemType((const QString &) currentDir.canonicalPath()); - setCaption("AdvancedFm :: "+fs); + setCaption("AdvancedFm :: "+fs); bool isDir=FALSE; const QFileInfoList *list = currentDir.entryInfoList( /*QDir::All*/ /*, QDir::SortByMask*/); QFileInfoListIterator it(*list); QFileInfo *fi; while ( (fi=it.current()) ) { if (fi->isSymLink() ) { @@ -307,15 +308,15 @@ void AdvancedFm::populateLocalView() // qDebug( fileL); } } QFileInfo fileInfo( currentDir.canonicalPath()+"/"+fileL); if(fileL !="./" && fi->exists()) { item= new QListViewItem( Local_View, 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" ); // item->setPixmap( 0,pm ); } else if ( fs == "vfat" && fileInfo.filePath().contains("/bin") ) { @@ -325,13 +326,13 @@ void AdvancedFm::populateLocalView() | fileInfo.permission( QFileInfo::ExeOther)) && fs != "vfat" ) { pm = Resource::loadPixmap( "exec"); // else { //is exec // pm = Resource::loadPixmap( "exec"); // } // // item->setPixmap( 0,pm); - } else if( !fi->isReadable() ) { + } else if( !fi->isReadable() ) { pm = Resource::loadPixmap( "locked" ); // item->setPixmap( 0,pm); } else { //everything else goes by mimetype MimeType mt(fi->filePath()); pm=mt.pixmap(); //sets the correct pixmap for mimetype if(pm.isNull()) @@ -376,16 +377,16 @@ void AdvancedFm::populateLocalView() if( fileL.find(".") == -1 ){ item= new QListViewItem( Local_View, fileL, fileS, fileDate); pm = Resource::loadPixmap( "UnknownDocument-14" ); item->setPixmap( 0,pm); } } - + closedir(dir); } - + Local_View->setSorting( 3,FALSE); fillCombo( (const QString &) currentDir.canonicalPath()); } void AdvancedFm::populateRemoteView() @@ -404,13 +405,13 @@ void AdvancedFm::populateRemoteView() currentRemoteDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst); currentRemoteDir.setMatchAllDirs(TRUE); currentRemoteDir.setNameFilter(filterStr); QString fileL, fileS, fileDate; QString fs= getFileSystemType((const QString &) currentRemoteDir.canonicalPath()); - setCaption("AdvancedFm :: "+fs); + setCaption("AdvancedFm :: "+fs); bool isDir=FALSE; const QFileInfoList *list = currentRemoteDir.entryInfoList( /*QDir::All*/ /*, QDir::SortByMask*/); QFileInfoListIterator it(*list); QFileInfo *fi; while ( (fi=it.current()) ) { if (fi->isSymLink() ){ @@ -494,13 +495,13 @@ void AdvancedFm::populateRemoteView() if( fileL.find(".") == -1 ){ item= new QListViewItem( Remote_View, fileL, fileS, fileDate); pm = Resource::loadPixmap( "UnknownDocument-14" ); item->setPixmap( 0,pm); } } - + closedir(dir); } Remote_View->setSorting( 3,FALSE); fillCombo( (const QString &) currentRemoteDir.canonicalPath() ); } @@ -611,13 +612,13 @@ void AdvancedFm::showHidden() fileMenu->setItemChecked( fileMenu->idAt(0),FALSE); // localMenu->setItemChecked(localMenu->idAt(0),FALSE); // currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst); b=TRUE; } populateLocalView(); - + } void AdvancedFm::showRemoteHidden() { if (b) { currentRemoteDir.setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All); @@ -688,12 +689,14 @@ void AdvancedFm::showLocalMenu(QListViewItem * item) m.insertItem( tr( "Properties" ), this, SLOT( doProperties() )); m.setCheckable(TRUE); if (!b) m.setItemChecked(m.idAt(0),TRUE); else m.setItemChecked(m.idAt(0),FALSE); + if(Ir::supported()) + m.insertItem( tr( "Beam File" ), this, SLOT( doBeam() )); m.exec( QCursor::pos() ); } } void AdvancedFm::showRemoteMenu(QListViewItem * item) { @@ -725,19 +728,21 @@ void AdvancedFm::showRemoteMenu(QListViewItem * item) m.insertItem( tr( "Properties" ), this, SLOT( doProperties() )); m.setCheckable(TRUE); if (!b) m.setItemChecked(m.idAt(0),TRUE); else m.setItemChecked(m.idAt(0),FALSE); + if(Ir::supported()) + m.insertItem( tr( "Beam File" ), this, SLOT( doBeam() )); m.exec( QCursor::pos() ); - } + } } void AdvancedFm::runThis() { // QFileInfo *fi; -QString fs; +QString fs; if (TabWidget->currentPageIndex() == 0) { QString curFile = Local_View->currentItem()->text(0); fs= getFileSystemType((const QString &) currentDir.canonicalPath()); QFileInfo fileInfo( currentDir.canonicalPath()+"/"+curFile); qDebug( fileInfo.owner()); @@ -828,13 +833,13 @@ 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+ @@ -934,13 +939,13 @@ void AdvancedFm::localRename() } populateLocalView(); } void AdvancedFm::remoteRename() { - QString curFile = Remote_View->currentItem()->text(0); + QString curFile = Local_View->currentItem()->text(0); InputDialog *fileDlg; fileDlg = new InputDialog(this,tr("Rename"),TRUE, 0); fileDlg->setInputText((const QString &)curFile); fileDlg->exec(); if( fileDlg->result() == 1 ) { QString oldname = currentRemoteDir.canonicalPath() + "/" + curFile; @@ -1048,20 +1053,20 @@ void AdvancedFm::filePerms() { if (TabWidget->currentPageIndex() == 0) { populateLocalView(); } else { populateRemoteView(); } - + } void AdvancedFm::doProperties() { QStringList curFileList = getPath(); QString filePath; if (TabWidget->currentPageIndex() == 0) { - + filePath = currentDir.canonicalPath()+"/"; } else { filePath= currentRemoteDir.canonicalPath()+"/"; } // qDebug("%d",curFileList.count()); for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { @@ -1180,13 +1185,13 @@ 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); + QString destFile = currentRemoteDir.canonicalPath()+"/"+(*it); // if(destFile.right(1).find("/",0,TRUE) == -1) // destFile+="/"; // destFile +=(*it); curFile = currentDir.canonicalPath()+"/"+(*it); // if(curFile.right(1).find("/",0,TRUE) == -1) @@ -1249,13 +1254,13 @@ void AdvancedFm::copyAs() if(!copyFile(destFile, curFile) ) { QMessageBox::message("AdvancedFm","Could not copy\n"+curFile +"to\n"+destFile); qWarning("nothin doing"); } } } - + populateRemoteView(); TabWidget->setCurrentPage(1); } else { if (TabWidget->currentPageIndex() == 0) { for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { @@ -1376,13 +1381,13 @@ void AdvancedFm::runCommand() { if( Local_View->currentItem()) curFile = currentDir.canonicalPath() +"/"+ Local_View->currentItem()->text(0); } else { if(Remote_View->currentItem()) curFile = currentRemoteDir.canonicalPath() + "/"+Remote_View->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 ) { @@ -1396,17 +1401,17 @@ void AdvancedFm::runCommand() { qApp->processEvents(); FILE *fp; char line[130]; sleep(1); // if(command.find("2>",0,TRUE) != -1) command +=" 2>&1"; - fp = popen( (const char *) command, "r"); + fp = popen( (const char *) command, "r"); if ( !fp ) { - qDebug("Could not execute '" + command + "'! err=%d", fp); + qDebug("Could not execute '" + command + "'! err=%d", fp); QMessageBox::warning( this, tr("AdvancedFm"), tr("command failed!"), tr("&OK") ); - pclose(fp); + pclose(fp); return; } else { while ( fgets( line, sizeof line, fp)) { QString lineStr = line; lineStr=lineStr.left(lineStr.length()-1); outDlg->OutputEdit->append(lineStr); @@ -1422,13 +1427,13 @@ void AdvancedFm::runCommandStd() { if( Local_View->currentItem()) curFile = currentDir.canonicalPath() +"/"+ Local_View->currentItem()->text(0); } else { if(Remote_View->currentItem()) curFile = currentRemoteDir.canonicalPath() +"/"+ Remote_View->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 ) { @@ -1452,34 +1457,34 @@ void AdvancedFm::fileStatus() { outDlg->showMaximized(); outDlg->show(); qApp->processEvents(); FILE *fp; char line[130]; sleep(1); - fp = popen( (const char *) command, "r"); + fp = popen( (const char *) command, "r"); if ( !fp ) { - qDebug("Could not execute '" + command + "'! err=%d", fp); + qDebug("Could not execute '" + command + "'! err=%d", fp); QMessageBox::warning( this, tr("AdvancedFm"), tr("command failed!"), tr("&OK") ); - pclose(fp); + pclose(fp); return; } else { while ( fgets( line, sizeof line, fp)) { outDlg->OutputEdit->append(line); outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); - + } - + } } void AdvancedFm::mkDir() { - if (TabWidget->currentPageIndex() == 0) + if (TabWidget->currentPageIndex() == 0) localMakDir(); else remoteMakDir(); - + } void AdvancedFm::rn() { if (TabWidget->currentPageIndex() == 0) localRename(); else @@ -1545,27 +1550,27 @@ void AdvancedFm::keyReleaseEvent( QKeyEvent *e) break; case Key_3: CFButtonPushed(); break; case Key_4: SDButtonPushed(); - break; + break; case Key_5: homeButtonPushed(); - break; + break; case Key_6: docButtonPushed(); - break; + break; case Key_7: - break; + break; case Key_8: - break; + break; case Key_9: - break; + break; case Key_0: - break; + break; } } void AdvancedFm::mkSym() { QString cmd; QStringList curFileList = getPath(); @@ -1654,12 +1659,49 @@ QString AdvancedFm::getFileSystemType(const QString ¤tText) { } } return baseFs; } +void AdvancedFm::doBeam() { + Ir ir; + if(!ir.supported()){ + } else { + + QStringList curFileList = getPath(); + + if (TabWidget->currentPageIndex() == 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 ); + } + + } else { + for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { + + QString curFile = currentRemoteDir.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 ); + + } + } + } +} + +void AdvancedFm::fileBeamFinished( Ir *ir) { + QMessageBox::message( tr("Advancedfm Beam out"), tr("Ir sent.") ,tr("Ok") ); + +} + + // QList<QListViewItem> * getSelectedItems( QListView * Local_View ); // QListViewItemIterator it( Local_View ); // for ( ; it.current(); ++it ) { // if ( it.current()->isSelected() ) { // QString strItem = it.current()->text(0); // QString localFile = currentDir.canonicalPath()+"/"+strItem; diff --git a/noncore/apps/advancedfm/advancedfm.h b/noncore/apps/advancedfm/advancedfm.h index 90619ba..5817fca 100644 --- a/noncore/apps/advancedfm/advancedfm.h +++ b/noncore/apps/advancedfm/advancedfm.h @@ -16,12 +16,13 @@ #include <qdialog.h> #include <qmainwindow.h> #include <qdir.h> #include <qstring.h> #include <qpoint.h> #include <qstringlist.h> +#include <qpe/ir.h> class QVBoxLayout; class QHBoxLayout; class QGridLayout; class QComboBox; class QListView; @@ -120,9 +121,11 @@ protected slots: void currentPathComboActivated(const QString &); void fillCombo(const QString &); bool copyFile( const QString & , const QString & ); void move(); void fileStatus(); void doAbout(); + void doBeam(); + void fileBeamFinished( Ir *ir); }; #endif // ADVANCEDFM_H |