summaryrefslogtreecommitdiff
authorllornkcor <llornkcor>2003-03-23 14:39:42 (UTC)
committer llornkcor <llornkcor>2003-03-23 14:39:42 (UTC)
commit376aa038c75b3fbccdcb2e81d5b2ac3de787a447 (patch) (side-by-side diff)
treedfbcd8cfd1a6c37eb5d3b0f8f003a0c41154fd59
parent47d6402958e3d95a49a116552979407b4b731670 (diff)
downloadopie-376aa038c75b3fbccdcb2e81d5b2ac3de787a447.zip
opie-376aa038c75b3fbccdcb2e81d5b2ac3de787a447.tar.gz
opie-376aa038c75b3fbccdcb2e81d5b2ac3de787a447.tar.bz2
add stderr messagebox to oprocess
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/apps/advancedfm/advancedfm.h4
-rw-r--r--noncore/apps/advancedfm/advancedfmMenu.cpp20
2 files changed, 20 insertions, 4 deletions
diff --git a/noncore/apps/advancedfm/advancedfm.h b/noncore/apps/advancedfm/advancedfm.h
index 3250a66..f31956c 100644
--- a/noncore/apps/advancedfm/advancedfm.h
+++ b/noncore/apps/advancedfm/advancedfm.h
@@ -1,170 +1,172 @@
/***************************************************************************
advancedfm.h
-------------------
** Created: Sat Mar 9 23:33:09 2002
copyright : (C) 2002 by ljp
email : ljp@llornkcor.com
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
***************************************************************************/
#ifndef ADVANCEDFM_H
#define ADVANCEDFM_H
#define QTOPIA_INTERNAL_FSLP // to get access to fileproperties
#define QT_QWS_OPIE
//#include <opie/otabwidget.h>
+#include <opie/oprocess.h>
#include <qpe/ir.h>
#include <qvariant.h>
#include <qdialog.h>
#include <qmainwindow.h>
#include <qstringlist.h>
#include <qdir.h>
#include <qstring.h>
#include <qpoint.h>
#include <qtimer.h>
class OTabWidget;
class QVBoxLayout;
class QHBoxLayout;
class QGridLayout;
class QComboBox;
class QListView;
class QListviewItem;
class QLabel;
class QProgressBar;
class QSpinBox;
class QTabWidget;
class QWidget;
class QPEToolBar;
class QPEMenuBar;
class QPopupMenu;
class QFile;
class QListViewItem;
class QLineEdit;
class MenuButton;
//class QPushButton;
class QToolButton;
class Ir;
class AdvancedFm : public QMainWindow
{
Q_OBJECT
public:
AdvancedFm();
~AdvancedFm();
protected slots:
void selectAll();
void addToDocs();
void doDirChange();
void mkDir();
void del();
void rn();
void populateView();
void rePopulate();
void showHidden();
void showMenuHidden();
void writeConfig();
void readConfig();
void ListClicked(QListViewItem *);
void ListPressed( int, QListViewItem *, const QPoint&, int);
void makeDir();
void doDelete();
void tabChanged(QWidget*);
void cleanUp();
void renameIt();
void runThis();
void runText();
void filePerms();
void doProperties();
void runCommand();
void runCommandStd();
QStringList getPath();
void mkSym();
void switchToLocalTab();
void switchToRemoteTab();
protected:
OTabWidget *TabWidget;
int whichTab;
// QTabWidget *TabWidget;
QWidget *tab, *tab_2, *tab_3;
QListView *Local_View, *Remote_View;
QLineEdit *currentPathEdit;
QPopupMenu *fileMenu, *localMenu, *remoteMenu, *viewMenu /*, *customDirMenu*/;
QToolButton *homeButton, *docButton, *cdUpButton, *sdButton, *cfButton, *qpeDirButton;
// QPushButton *homeButton, *docButton, *cdUpButton, *sdButton, *cfButton, *qpeDirButton;
QDir currentDir, currentRemoteDir;
QComboBox *currentPathCombo;
QString filterStr, s_addBookmark, s_removeBookmark;
QListViewItem * item;
bool b;
QStringList fileSystemTypeList, fsList;
int currentServerConfig;
bool zaurusDevice;
QGridLayout *tabLayout, *tabLayout_2, *tabLayout_3;
QStringList remoteDirPathStringList, localDirPathStringList;
QLineEdit *renameBox;
void init();
void initConnections();
void keyReleaseEvent( QKeyEvent *);
void keyPressEvent( QKeyEvent *);
QString getFileSystemType(const QString &);
QString getDiskSpace(const QString &);
void parsetab(const QString &fileName);
QString checkDiskSpace(const QString &);
QString dealWithSymName(const QString &);
QDir *CurrentDir();
QDir *OtherDir();
QListView *CurrentView();
QListView *OtherView();
void setOtherTabCurrent();
protected slots:
void dirMenuSelected(int);
void showFileMenu();
void cancelMenuTimer();
void homeButtonPushed();
void docButtonPushed();
void SDButtonPushed();
void CFButtonPushed();
void QPEButtonPushed();
void upDir();
void currentPathComboChanged();
void copy();
void copyAs();
void copySameDir();
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 *);
private:
MenuButton *menuButton;
QString oldName;
QTimer menuTimer;
void startProcess(const QString &);
bool eventFilter( QObject * , QEvent * );
void cancelRename();
void doRename(QListView *);
void okRename();
void customDirsToMenu();
void addCustomDir();
void removeCustomDir();
private slots:
- void processEnded();
+ void processEnded(OProcess *);
+ void oprocessStderr(OProcess *, char *, int);
void gotoCustomDir(const QString &);
};
#endif // ADVANCEDFM_H
diff --git a/noncore/apps/advancedfm/advancedfmMenu.cpp b/noncore/apps/advancedfm/advancedfmMenu.cpp
index a82d69a..eac13f6 100644
--- a/noncore/apps/advancedfm/advancedfmMenu.cpp
+++ b/noncore/apps/advancedfm/advancedfmMenu.cpp
@@ -631,208 +631,222 @@ void AdvancedFm::mkDir()
void AdvancedFm::rn()
{
renameIt();
}
void AdvancedFm::del()
{
doDelete();
}
void AdvancedFm::mkSym()
{
QString cmd;
QStringList curFileList = getPath();
if( curFileList.count() > 0)
{
QDir *thisDir = CurrentDir();
QDir * thatDir = OtherDir();
for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it )
{
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
{
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 );
}
}
}
}
void AdvancedFm::fileBeamFinished( Ir *)
{
QMessageBox::message( tr("Advancedfm Beam out"), tr("Ir sent.") ,tr("Ok") );
}
void AdvancedFm::selectAll()
{
// if (TabWidget->getCurrentTab() == 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();
connect(process, SIGNAL(processExited(OProcess *)),
- this, SLOT( processEnded()));
+ this, SLOT( processEnded(OProcess *)));
+
+ connect(process, SIGNAL( receivedStderr(OProcess *, char *, int)),
+ this, SLOT( oprocessStderr(OProcess *, char *, int)));
command << "/bin/sh";
command << "-c";
command << cmd.latin1();
*process << command;
- if(!process->start(OProcess::NotifyOnExit) )
+ if(!process->start(OProcess::NotifyOnExit, OProcess::All) )
qDebug("could not start process");
}
-void AdvancedFm::processEnded()
+void AdvancedFm::processEnded(OProcess *)
{
// populateLocalView();
populateView();
}
+void AdvancedFm::oprocessStderr(OProcess*, char *buffer, int buflen) {
+ 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 )
{
QKeyEvent *ke = (QKeyEvent*)e;
if ( ke->key() == Key_Return ||
ke->key() == Key_Enter )
{
okRename();
return true;
}
else if ( ke->key() == Key_Escape )
{
cancelRename();
return true;
}
}
else if ( e->type() == QEvent::FocusOut )
{
cancelRename();
return true;
}
}
if ( o->inherits( "QListView" ) )
{
if ( e->type() == QEvent::FocusOut )
{
printf("focusIn\n");
}
}
return QWidget::eventFilter( o, e );
}
void AdvancedFm::cancelRename()
{
qDebug("cancel rename");
QListView * view;
view = CurrentView();
bool resetFocus = view->viewport()->focusProxy() == renameBox;
delete renameBox;
renameBox = 0;
if ( resetFocus )
{
view->viewport()->setFocusProxy( view);
view->setFocus();
}
}
void AdvancedFm::doRename(QListView * view)
{
QRect r = view->itemRect( view->currentItem( ));
r = QRect( view->viewportToContents( r.topLeft() ), r.size() );
r.setX( view->contentsX() );
if ( r.width() > view->visibleWidth() )
r.setWidth( view->visibleWidth() );
renameBox = new QLineEdit( view->viewport(), "qt_renamebox" );
renameBox->setFrame(true);
renameBox->setText( view->currentItem()->text(0) );
renameBox->selectAll();
renameBox->installEventFilter( this );
view->addChild( renameBox, r.x(), r.y() );
renameBox->resize( r.size() );
view->viewport()->setFocusProxy( renameBox );
renameBox->setFocus();
renameBox->show();
}
void AdvancedFm::renameIt()
{
QListView *thisView = CurrentView();
oldName = thisView->currentItem()->text(0);
doRename( thisView );
populateView();
}
void AdvancedFm::okRename()
{
QString newName = renameBox->text();
cancelRename();
// int tabs=0;
QListView * view = CurrentView();
QString path = CurrentDir()->canonicalPath() + "/";
oldName = path + oldName;
newName = path + newName;