summaryrefslogtreecommitdiffstats
path: root/kommander/editor/assistproc.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kommander/editor/assistproc.cpp')
-rw-r--r--kommander/editor/assistproc.cpp74
1 files changed, 74 insertions, 0 deletions
diff --git a/kommander/editor/assistproc.cpp b/kommander/editor/assistproc.cpp
new file mode 100644
index 00000000..58ac4f78
--- /dev/null
+++ b/kommander/editor/assistproc.cpp
@@ -0,0 +1,74 @@
+/**********************************************************************
+** Copyright (C) 2000 Trolltech AS. All rights reserved.
+**
+** This file is part of Qt Designer.
+**
+** This file may be distributed and/or modified under the terms of the
+** GNU General Public License version 2 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file.
+**
+** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+**
+** See http://www.trolltech.com/gpl/ for GPL licensing information.
+**
+** Contact info@trolltech.com if any conditions of this licensing are
+** not clear to you.
+**
+**********************************************************************/
+#include "assistproc.h"
+
+AssistProc::AssistProc( QObject *parent, const char *name, const QString &path )
+ : QProcess( parent, name )
+{
+ assistantPath = path;
+ connect( this, SIGNAL(readyReadStdout()), this, SLOT(processOutput()) );
+ connect( this, SIGNAL(readyReadStderr()), this, SLOT(processErrOutput()) );
+}
+
+AssistProc::~AssistProc()
+{
+ tryTerminate();
+ QTimer::singleShot( 5000, this, SLOT(kill())); // If busy, kill in 5 sec...
+}
+
+bool AssistProc::run( const QString &path )
+{
+ if ( !path.isEmpty() )
+ assistantPath = path;
+
+ clearArguments();
+ addArgument( assistantPath );
+ addArgument( "-stdin" );
+
+ if ( !start() ) {
+ qWarning( "Assistant [exe]: Couldn't start \'%s\', please check path.", assistantPath.latin1() );
+ return false;
+ }
+ return true;
+}
+
+bool AssistProc::sendRequest( const QString &data )
+{
+ if ( isRunning() ) {
+ writeToStdin( data );
+ } else {
+ if ( run() ) // If not running, try to start
+ writeToStdin( data ); // and display requested page.
+ else
+ return false;
+ }
+ return true;
+}
+
+void AssistProc::processOutput()
+{
+ qWarning( "Assistant [out]: %s", readStdout().data() );
+}
+
+void AssistProc::processErrOutput()
+{
+ qWarning( "Assistant [err]: %s", readStderr().data() );
+}
+#include "assistproc.moc"