diff options
author | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
---|---|---|
committer | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
commit | 37333bf25ad9a4c538250f5af2f9f1d666362883 (patch) | |
tree | c45e8df5b9efbffe07eb3d9340df7811c7e16943 /kpackage/kpPty.h | |
download | tdeadmin-37333bf25ad9a4c538250f5af2f9f1d666362883.tar.gz tdeadmin-37333bf25ad9a4c538250f5af2f9f1d666362883.zip |
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdeadmin@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kpackage/kpPty.h')
-rw-r--r-- | kpackage/kpPty.h | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/kpackage/kpPty.h b/kpackage/kpPty.h new file mode 100644 index 0000000..f427ef8 --- /dev/null +++ b/kpackage/kpPty.h @@ -0,0 +1,106 @@ +/* +** Copyright (C) 1999,2000 Toivo Pedaste <toivo@ucs.uwa.edu.au> +** +*/ + +/* +** 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. +** +** This program is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with this program in a file called COPYING; if not, write to +** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +** MA 02110-1301, USA. +*/ + +/* +** Bug reports and questions can be sent to kde-devel@kde.org +*/ + +#ifndef KPPTY_H +#define KPPTY_H + +#include <qmultilineedit.h> +#include <qstringlist.h> +#include <qregexp.h> +#include <qtextcodec.h> +#include <qmap.h> + +#include <kprocio.h> + +////////////////////////////////////////////////////////////////////////////// + +class kpKProcIO: public KProcIO +{ + Q_OBJECT + +public: + + kpKProcIO ( QTextCodec *_codec = 0); + ~kpKProcIO(); + + bool sstart (RunMode runmode); +}; + + +////////////////////////////////////////////////////////////////////////////// +class kpPty: public QObject +{ Q_OBJECT +public: + kpPty(); + ~kpPty(); + + QStringList run(const QString &cmd, bool inLoop = TRUE, + bool needRoot= FALSE); + bool startSession(bool needRoot); + void close(); + + QString remote; + int Result; + // True if have started a session + bool inSession; + +private slots: + void readLines(); + void done(); + void slotTimeout(); + +public slots: + void keyOut(char); + +signals: + void textIn(const QString &, bool); + void result(QStringList &, int); + +private: + void finish(int ret); + + void startSsh(); + void startSu(); + void startSudo(); + void breakUpCmd(const QString &); + bool needSession(bool needRoot); + + kpKProcIO* pty; + QTimer *tm; + QStringList retList; + QRegExp terminator; + bool pUnterm; + QString uptext; + // True if in event loop + bool eventLoop; + // True if trying to login + bool loginSession; + QTextCodec *codec; + QMap<QString, QCString> passwords; +}; + + +#endif |